Compare commits

..
Author SHA1 Message Date
basti 1399746124 Build production from 1ea5305 2019-05-29 10:12:22 +02:00
basti 0a9a80065f Build production from 18be60d 2019-05-10 16:03:27 +02:00
basti 266bdd8687 Build production from 4c2d95f 2019-05-08 14:58:33 +02:00
basti de44ec73f7 Build production from 6593005 2019-05-01 20:32:19 +01:00
basti e60cc3a127 Build production from 24a3d8b 2019-04-26 19:01:24 +01:00
basti 90c0b19f00 Build production from d02fb47 2019-04-25 20:55:13 +01:00
bumi 69586a809d Build production from 0283913 2019-04-24 17:09:13 +02:00
bumi fd4b970f41 Build production from 83fd9a9 2019-04-19 15:50:05 +02:00
bumi b76ece5c49 Build production from 6dcbd1e 2019-04-18 11:26:28 +02:00
bumi 9106137ee5 Build production from a2ddb23 2019-04-17 22:48:38 +02:00
basti 8edfef5fae Build production from 64997d7 2018-07-20 12:33:33 +02:00
basti 995bc80f14 Build production from 297ed4e 2018-07-19 09:29:05 +02:00
basti 857f577df1 Build production from ef0f3ff 2018-07-12 11:31:49 +02:00
basti bdf457e20c Build production from c074ccf 2018-06-17 16:16:38 +02:00
basti 77ea34e7ec Build production from 575c1a1 2018-06-14 19:25:49 +02:00
basti 7c4abc57f1 Build production from e78832e 2018-06-14 15:32:16 +02:00
basti 2c1e97acff Build production from a0ee2f7 2018-06-07 13:37:32 +02:00
basti 29bbf6fe96 Build production from d070288 2018-06-04 14:15:25 +02:00
basti 5eca562744 Build production from 3e7fe1b 2018-04-21 20:21:11 +02:00
basti d7b505aeb3 Build production from b1db64a 2017-06-15 11:24:29 -07:00
basti 6233ffe550 Build production from 9b37f13 2017-06-13 14:39:19 +02:00
basti c229832734 Build production from 8aa86fa 2017-06-09 00:53:43 +02:00
basti 52ff03592c Build production from 40d6b99 2017-05-31 17:07:49 +02:00
basti cd74429dd7 Build production from 2288250 2017-05-31 16:55:24 +02:00
basti 88bb2b9311 Build production from dda5a8d 2017-05-14 19:58:28 +02:00
basti 2cb3fbeb85 Build production from 0b7afc0 2017-05-14 01:11:22 +02:00
basti 7a0d3a0e73 Build production from b8ded8e 2017-02-18 18:06:19 +08:00
basti d1a55a5171 Build production from 7c98de3 2017-02-08 14:34:49 +08:00
basti c848f204b9 Build production from 3eb5845 2017-02-07 22:39:51 +08:00
basti e76e383854 Build production from 9cc4f85 2017-02-07 21:58:15 +08:00
basti 2817b4c389 Build production from b15191a 2017-02-07 21:18:42 +08:00
basti e119f4a29e Add gitignore config 2017-02-07 21:06:24 +08:00
213 changed files with 107947 additions and 29265 deletions

No files matched your search

-20
View File
@@ -1,20 +0,0 @@
# EditorConfig helps developers define and maintain consistent
# coding styles between different editors and IDEs
# editorconfig.org
root = true
[*]
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
indent_style = space
indent_size = 2
[*.hbs]
insert_final_newline = false
[*.{diff,md}]
trim_trailing_whitespace = false
-9
View File
@@ -1,9 +0,0 @@
{
/**
Ember CLI sends analytics information by default. The data is completely
anonymous, but there are times when you might want to disable this behavior.
Setting `disableAnalytics` to true will prevent any data from being sent.
*/
"disableAnalytics": true
}
-21
View File
@@ -1,21 +0,0 @@
# unconventional js
/blueprints/*/files/
/vendor/
# compiled output
/dist/
/tmp/
/release/
# dependencies
/bower_components/
/node_modules/
# misc
/coverage/
!.*
# ember-try
/.node_modules.ember-try/
/bower.json.ember-try
/package.json.ember-try
-47
View File
@@ -1,47 +0,0 @@
module.exports = {
root: true,
parserOptions: {
ecmaVersion: 2017,
sourceType: 'module'
},
globals: {
console: true
},
plugins: [
'ember'
],
extends: [
'eslint:recommended',
'plugin:ember/recommended'
],
env: {
browser: true
},
rules: {
'ember/avoid-leaking-state-in-ember-objects': 'warn',
'no-console': 'off'
},
overrides: [
// node files
{
files: [
'.eslintrc.js',
'.template-lintrc.js',
'ember-cli-build.js',
'testem.js',
'blueprints/*/index.js',
'config/**/*.js',
'lib/*/index.js',
'server/**/*.js'
],
parserOptions: {
sourceType: 'script',
ecmaVersion: 2015
},
env: {
browser: false,
node: true
}
}
]
};
+9 -16
View File
@@ -1,26 +1,19 @@
# See https://help.github.com/ignore-files/ for more about ignoring files.
# compiled output
/dist/
/tmp/
/dist
/tmp
# dependencies
/bower_components/
/node_modules/
/node_modules
/bower_components
/scripts
# misc
/.env*
/.pnp*
/.sass-cache
/connect.lock
/coverage/
/coverage/*
/libpeerconnection.log
/npm-debug.log*
/testem.log
/yarn-error.log
.tm_properties
# ember-try
/.node_modules.ember-try/
/bower.json.ember-try
/package.json.ember-try
npm-debug.log*
testem.log
+1
View File
@@ -0,0 +1 @@
8.11.3
-9
View File
@@ -1,9 +0,0 @@
'use strict';
module.exports = {
extends: 'recommended',
rules: {
'simple-unless': false
}
};
-27
View File
@@ -1,27 +0,0 @@
---
language: node_js
node_js:
- "10"
sudo: false
dist: xenial
addons:
chrome: stable
cache:
directories:
- $HOME/.npm
env:
global:
# See https://git.io/vdao3 for details.
- JOBS=1
before_install:
- npm config set spin false
script:
- npm run lint:hbs
- npm run lint:js
- npm test
-3
View File
@@ -1,3 +0,0 @@
{
"ignore_dirs": ["tmp", "dist"]
}
-117
View File
@@ -1,117 +0,0 @@
[![Build Status](https://travis-ci.org/67P/kredits-web.svg?branch=master)](https://travis-ci.org/67P/kredits-web)
# kredits-web
This README outlines the details of collaborating on this Ember application.
A short introduction of this app could easily go here.
## Prerequisites
You will need the following things properly installed on your computer.
* [Git](https://git-scm.com/)
* [Node.js](https://nodejs.org/) (with npm)
* [Ember CLI](https://ember-cli.com/)
* [Google Chrome](https://google.com/chrome/)
## Installation
* `git clone git@github.com:67P/kredits-web.git` this repository
* `cd kredits-web`
* `npm install`
## Running / Development
* `ember serve` - by default kredits-web connects to the Ethreum Kovan network
* Visit your app at [http://localhost:4200](http://localhost:4200).
* Visit your tests at [http://localhost:4200/tests](http://localhost:4200/tests).
See [working with locally deployed contracts](https://github.com/67P/kredits-web#working-with-locally-deployed-contracts) for details on how to develop with locally deployed contracts.
### Code Generators
Make use of the many generators for code, try `ember help generate` for more details
### Running Tests
* `ember test`
* `ember test --server`
### Linting
* `npm run lint:hbs`
* `npm run lint:js`
* `npm run lint:js -- --fix`
### Building
* `ember build` (development)
* `ember build --environment production` (production)
### Deploying
_(You need collaborator permissions on the 5apps Deploy project.)_
`npm run deploy`
## Working with locally deployed contracts
The smart contracts and their JavaScript wrapper library are developed in the
[kredits-contracts](https://github.com/67P/kredits-contracts) repo/package.
You can run `kredits-web` on your machine, against a local, simulated Ethereum
network, provided e.g. by [ganache](http://truffleframework.com/ganache/).
[kredits-contracts](https://github.com/67P/kredits-contracts) holds all the tools
to start and set up such a simulated network, as well as to deploy smart
contracts to it.
These are the basic steps to get up and running:
#### 1. IPFS
Run a local IPFS deamon in offline mode.
* Make sure CORS headers are configured. See [IPFS](#ipfs) for more info.
* `ipfs daemon --offline`
#### 2. kredits-contracts
Get your local Ethereum development node running. (See [kredits-contracts README](https://github.com/67P/kredits-contracts)
for details.
* Clone [kredits-contracts](https://github.com/67P/kredits-contracts)
* `npm install`
* `npm run devchain` - runs a local development chain
* `npm run bootstrap` - bootstrap runs deploys all the contracts
* `npm link` - make the `kredits-contracts` module linkable as `kredits-contracts` on your machine (currently broken :( )
#### 3. kredits-web
With IPFS and Ethereum/ganache running, you can now start this Ember app.
* `npm link kredits-contracts` - link the local `kredits-contracts` package
* `npm run start:local` - WEB3_PROVIDER_URL=http://localhost:7545 must be set for local settings
If you restart the devchain your network ID changes. So kredits-contracts does not find the correct DAO Kernel address.
If that is the case the DAO address must be provided as `KREDITS_KERNEL_ADDRESS` environment variable.
* `KREDITS_KERNEL_ADDRESS=<0xYOURADDRESS> npm run start:local` - find your address with the `npm run dao:address` command in the kredits-contracts repo.
#### IPFS
Install IPFS with your favorite package manager and run
ipfs init (on initial installation)
ipfs config --json API.HTTPHeaders.Access-Control-Allow-Origin '["localhost:4200"]'
ipfs config --json API.HTTPHeaders.Access-Control-Allow-Methods '["PUT", "GET", "POST"]'
ipfs config --json API.HTTPHeaders.Access-Control-Allow-Credentials '["true"]'
## Further Reading / Useful Links
* [ember.js](https://emberjs.com/)
* [ember-cli](https://ember-cli.com/)
* Development Browser Extensions
* [ember inspector for chrome](https://chrome.google.com/webstore/detail/ember-inspector/bmdblncegkenkacieihfhpjfppoconhi)
* [ember inspector for firefox](https://addons.mozilla.org/en-US/firefox/addon/ember-inspector/)
+1
View File
@@ -0,0 +1 @@
1.0.0
-14
View File
@@ -1,14 +0,0 @@
import Application from '@ember/application';
import Resolver from './resolver';
import loadInitializers from 'ember-load-initializers';
import config from './config/environment';
const App = Application.extend({
modulePrefix: config.modulePrefix,
podModulePrefix: config.podModulePrefix,
Resolver
});
loadInitializers(App, config.modulePrefix);
export default App;
@@ -1,70 +0,0 @@
import Component from '@ember/component';
import { computed } from '@ember/object';
import { and, notEmpty } from '@ember/object/computed';
export default Component.extend({
attributes: null,
contributors: Object.freeze([]),
isValidContributor: notEmpty('contributorId'),
isValidKind: notEmpty('kind'),
isValidAmount: computed('amount', function() {
return parseInt(this.amount, 10) > 0;
}),
isValidDescription: notEmpty('description'),
isValidUrl: notEmpty('url'),
isValid: and('isValidContributor',
'isValidKind',
'isValidAmount',
'isValidDescription'),
init () {
this._super(...arguments);
this.set('defaultDate', new Date());
// Default attributes used by reset
this.set('attributes', {
contributorId: null,
kind: null,
date: [new Date()],
amount: null,
description: null,
url: null,
});
this.reset();
},
reset () {
this.setProperties(this.attributes);
},
actions: {
submit () {
if (!this.isValid) {
alert('Invalid data. Please review and try again.');
return;
}
const attributes = this.getProperties(Object.keys(this.attributes));
const [ date/* , time */ ] = attributes.date[0].toISOString().split('T');
attributes.date = date;
this.set('inProgress', true);
this.save(attributes)
.then((/*contribution*/) => {
this.reset();
}, err => {
console.warn(err);
window.alert('Something went wrong. Check the browser console for details.');
})
.finally(() => this.set('inProgress', false));
}
}
});
@@ -1,58 +0,0 @@
<form {{action "submit" on="submit"}}>
<p>
<select required onchange={{action (mut contributorId) value="target.value"}}>
<option value="" selected disabled hidden>Contributor</option>
{{#each contributors as |contributor|}}
<option value={{contributor.id}} selected={{eq contributorId contributor.id}}>{{contributor.name}}</option>
{{/each}}
</select>
</p>
<p>
<select required onchange={{action (mut kind) value="target.value"}}>
<option value="" selected disabled hidden>Kind</option>
<option value="community" selected={{eq kind "community"}}>Community</option>
<option value="design" selected={{eq kind "design"}}>Design</option>
<option value="dev" selected={{eq kind "dev"}}>Development</option>
<option value="docs" selected={{eq kind "docs"}}>Documentation</option>
<option value="ops" selected={{eq kind "ops"}}>IT Operations</option>
<option value="special" selected={{eq kind "special"}}>Special</option>
</select>
</p>
<p>
{{ember-flatpickr
allowInput=false
altFormat="F j, Y"
altInput=true
altInputClass="date-alt"
date=date
dateFormat="Y-m-d"
defaultDate=defaultDate
maxDate=defaultDate
onChange=(action (mut date))
}}
</p>
<p>
{{input type="text"
placeholder="500"
value=amount
class=(if isValidAmount "valid" "")}}
</p>
<p>
{{input type="text"
placeholder="Description"
value=description
class=(if isValidDescription "valid" "")}}
</p>
<p>
{{input type="text"
placeholder="URL (optional)"
value=url
class=(if isValidUrl "valid" "")}}
</p>
<p class="actions">
{{input type="submit"
disabled=inProgress
value=(if inProgress "Processing" "Save")}}
</p>
</form>
@@ -1,78 +0,0 @@
import Component from '@ember/component';
import { and, notEmpty } from '@ember/object/computed';
import { inject as service } from '@ember/service';
import { isPresent } from '@ember/utils';
export default Component.extend({
kredits: service(),
attributes: null,
// TODO: add proper address validation
isValidAccount: notEmpty('account'),
isValidName: notEmpty('name'),
isValidURL: notEmpty('url'),
isValidGithubUID: notEmpty('github_uid'),
isValidGithubUsername: notEmpty('github_username'),
isValidGiteaUsername: notEmpty('gitea_username'),
isValidWikiUsername: notEmpty('wiki_username'),
isValid: and(
'isValidAccount',
'isValidName',
'isValidGithubUID'
),
inProgress: false,
init () {
this._super(...arguments);
this.setDefaultAttributes();
this.reset();
},
setDefaultAttributes () {
if (isPresent(this.attributes)) { return; }
this.set('attributes', {
account: null,
name: null,
kind: 'person',
url: null,
github_username: null,
github_uid: null,
gitea_username: null,
wiki_username: null
});
},
reset: function() {
this.setProperties(this.attributes);
},
actions: {
submit () {
if (!this.isValid) {
alert('Invalid data. Please review and try again.');
return;
}
const attributes = Object.keys(this.attributes);
const contributor = this.getProperties(attributes);
this.set('inProgress', true);
this.save(contributor).then(() => {
this.reset();
}).catch(err => {
console.warn(err);
window.alert('Something went wrong. Please check the browser console.');
}).finally(() => {
this.set('inProgress', false);
});
}
}
});
@@ -1,50 +0,0 @@
<form {{action "submit" on="submit"}}>
<p>
<label for="c-account">Ethereum account</label>
{{input name="account" id="c-account"
type="text" value=account
placeholder="0xF18E631Ea191aE4ebE70046Fcb01a436554421BA4"
class=(if isValidAccount "valid" "")}}
</p>
<p>
<label for="c-kind">Kind</label>
<select required onchange={{action (mut kind) value="target.value"}} id="c-kind">
<option value="person" selected={{eq kind "person"}}>Person</option>
<option value="organization" selected={{eq kind "organization"}}>Organization</option>
</select>
</p>
<p>
<label for="c-name">Name</label>
{{input name="name" type="text" value=name placeholder="Zero Cool"
class=(if isValidName "valid" "") id="c-name"}}
</p>
<p>
<label for="c-url">URL</label>
{{input name="url" type="text" value=url placeholder="http://zerocool.bit"
class=(if isValidURL "valid" "") id="c-url"}}
</p>
<p>
<label for="c-github-uid">GitHub UID</label>
{{input name="github_uid" type="text" value=github_uid placeholder="2342"
class=(if isValidGithubUID "valid" "") id="c-github-uid"}}
</p>
<p>
<label for="c-github-username">GitHub username</label>
{{input name="github_username" type="text" value=github_username placeholder="zerocool"
class=(if isValidGithubUsername "valid" "") id="c-github-username"}}
</p>
<p>
<label for="c-gitea-username">Gitea username</label>
{{input name="gitea_username" type="text" value=gitea_username placeholder="zerocool"
class=(if isValidGiteaUsername "valid" "") id="c-gitea-username"}}
</p>
<p>
<label for="c-wiki-username">Wiki username</label>
{{input name="wiki_username" type="text" value=wiki_username placeholder="ZeroCool"
class=(if isValidWikiUsername "valid" "") id="c-wiki-username"}}
</p>
<p class="actions">
{{input type="submit" disabled=inProgress
value=(if inProgress "Processing" "Save")}}
</p>
</form>
-64
View File
@@ -1,64 +0,0 @@
import Component from '@ember/component';
import { computed } from '@ember/object';
import { and, notEmpty } from '@ember/object/computed';
export default Component.extend({
attributes: null,
contributors: Object.freeze([]),
isValidContributor: notEmpty('contributorId'),
isValidAmount: computed('amount', function() {
return parseInt(this.amount, 10) > 0;
}),
isValidDescription: notEmpty('description'),
isValidUrl: notEmpty('url'),
isValid: and('isValidContributor',
'isValidAmount',
'isValidDescription'),
init () {
this._super(...arguments);
// Default attributes used by reset
this.set('attributes', {
contributorId: null,
kind: 'community',
amount: null,
description: null,
url: null,
});
},
didInsertElement() {
this._super(...arguments);
this.reset();
},
reset: function() {
this.setProperties(this.attributes);
},
actions: {
submit() {
if (!this.isValid) {
alert('Invalid data. Please review and try again.');
return;
}
let attributes = Object.keys(this.attributes);
let proposal = this.getProperties(attributes);
let saved = this.save(proposal);
// The promise handles inProgress
this.set('inProgress', saved);
saved.then(() => {
this.reset();
window.scroll(0,0);
window.alert('Proposal added.');
});
}
}
});
-44
View File
@@ -1,44 +0,0 @@
<form {{action "submit" on="submit"}}>
<p>
<select required onchange={{action (mut contributorId) value="target.value"}}>
<option value="" selected disabled hidden>Contributor</option>
{{#each contributors as |contributor|}}
<option value={{contributor.id}} selected={{eq contributorId contributor.id}}>{{contributor.github_username}}</option>
{{/each}}
</select>
</p>
<p>
<select required onchange={{action (mut kind) value="target.value"}}>
<option value="community" selected={{eq kind "community"}}>Community</option>
<option value="design" selected={{eq kind "design"}}>Design</option>
<option value="dev" selected={{eq kind "dev"}}>Development</option>
<option value="docs" selected={{eq kind "docs"}}>Documentation</option>
<option value="ops" selected={{eq kind "ops"}}>IT Operations</option>
</select>
</p>
<p>
{{input type="text"
placeholder="100"
value=amount
class=(if isValidAmount "valid" "")}}
</p>
<p>
{{input type="text"
placeholder="Description"
value=description
class=(if isValidDescription "valid" "")}}
</p>
<p>
{{input type="text"
placeholder="URL (optional)"
value=url
class=(if isValidUrl "valid" "")}}
</p>
<p class="actions">
{{input type="submit"
disabled=(is-pending inProgress)
value=(if (is-pending inProgress) "Processing" "Save")}}
{{#link-to "index"}}Back{{/link-to}}
</p>
</form>
@@ -1,64 +0,0 @@
import Component from '@ember/component';
import { computed } from '@ember/object';
let categoryColors = {
community: "#fb6868",
design: "#fbe468",
dev: "#e068fb",
docs: "#97fb68",
ops: "#8f68fb",
}
export default Component.extend({
contributions: null,
chartOptions: Object.freeze({
legend: {
display: false
}
}),
chartData: computed('contributions', function() {
let kredits = this.contributions
.filterBy('vetoed', false)
.map(c => {
return { kind: c.kind, amount: c.amount }
})
.reduce(function (kinds, c) {
if (c.kind in kinds) {
kinds[c.kind] = kinds[c.kind] + c.amount
} else {
kinds[c.kind] = c.amount;
}
return kinds;
}, {});
return {
datasets: [{
data: [
kredits['community'],
kredits['design'],
kredits['dev'],
kredits['ops'],
kredits['docs'],
],
borderColor: [
categoryColors.community,
categoryColors.design,
categoryColors.dev,
categoryColors.ops,
categoryColors.docs,
],
borderWidth: 1
}],
labels: [
'Community',
'Design',
'Development',
'Operations & Infrastructure',
'Documentation'
],
}
})
});
@@ -1,7 +0,0 @@
<div class="chart">
{{ember-chart type="doughnut"
data=chartData
options=chartOptions
width=200
height=200}}
</div>
@@ -1,20 +0,0 @@
import Component from '@ember/component';
export default Component.extend({
tagName: 'ul',
classNames: ['contribution-list'],
actions: {
veto (contributionId) {
if (this.contractInteractionEnabled) {
this.vetoContribution(contributionId);
} else {
window.alert('Only members can veto contributions. Please ask someone to set you up.');
}
}
}
});
@@ -1,25 +0,0 @@
{{#each contributions as |contribution|}}
<li data-contribution-id={{contribution.id}} class="{{contribution-status contribution}} {{if contribution.vetoed "vetoed"}}">
<p class="meta">
<span class="recipient">{{user-avatar contributor=contribution.contributor}}</span>
<span class="category {{contribution.kind}}">({{contribution.kind}})</span>
<span class="title">
{{#if contribution.url}}
<a href={{contribution.url}} target="_blank" rel="noopener">{{contribution.description}}</a>
{{else}}
{{contribution.description}}
{{/if}}
</span>
</p>
<p class="kredits-amount">
<span class="amount">{{contribution.amount}}</span><span class="symbol">₭S</span>
</p>
{{#unless contribution.vetoed}}
{{#unless (is-confirmed-contribution contribution)}}
<p class="voting">
<button {{action "veto" contribution.id}} class="small danger">veto</button>
</p>
{{/unless}}
{{/unless}}
</li>
{{/each}}
@@ -1,22 +0,0 @@
import Component from '@ember/component';
export default Component.extend({
tagName: 'table',
classNames: 'contributor-list',
selectedContributor: null,
actions: {
toggleContributorInfo(contributor) {
if (contributor.showMetadata) {
contributor.set('showMetadata', false);
} else {
this.contributorList.setEach('showMetadata', false);
contributor.set('showMetadata', true);
}
}
}
});
@@ -1,39 +0,0 @@
<tbody>
{{#each contributorList as |c|}}
<tr role="button" class={{if (is-current-user c.contributor) "current-user"}} {{action "toggleContributorInfo" c}}>
<td class="person">
{{user-avatar contributor=c.contributor}} {{c.contributor.name}}
</td>
<td class="kredits">
<span class="amount">
{{#if showUnconfirmedKredits}}
{{c.amountTotal}}
{{else}}
{{c.amountConfirmed}}
{{/if}}
</span>
<span class="symbol">₭S</span>
</td>
</tr>
<tr class="metadata {{if (is-current-user c.contributor) "current-user"}} {{if c.showMetadata "visible"}}">
<td colspan="2">
<ul>
<li>
<a href="https://rinkeby.etherscan.io/address/{{c.contributor.account}}" target="_blank" rel="noopener">Inspect Ethereum transactions</a>
</li>
{{#if c.contributor.ipfsHash}}
<li>
<a href="https://ipfs.io/ipfs/{{c.contributor.ipfsHash}}" target="_blank" rel="noopener">Inspect IPFS profile</a>
</li>
{{/if}}
<li>
{{link-to "Edit profile" "contributors.edit" c.contributor.id}}
</li>
</ul>
{{#if c.showMetadata}}
<pre>{{c.contributor.ipfsData}}</pre>
{{/if}}
</td>
</tr>
{{/each}}
</tbody>
@@ -1,7 +0,0 @@
import Component from '@ember/component';
export default Component.extend({
classNames: ['loading-spinner']
});
@@ -1,14 +0,0 @@
<p>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
version="1.1" x="0px" y="0px" viewBox="0 0 132 100"
enable-background="new 0 0 100 100" xml:space="preserve">
<path id="path-comet"
d="M79.062,24.173L79.062,24.173l-0.021-0.011c-0.068-0.03-0.137-0.062-0.204-0.093L42.392,7.337
c0,0,3.065,14.104,4.458,18.019l0,0c0,0-41.754-12.481-46.85-13.67c1.67,6.52,30.607,62.492,30.607,62.492
c5.848,11.873,19.394,18.485,33.522,18.485c19.811,0,35.87-16.059,35.87-35.869C100,42.313,91.418,29.837,79.062,24.173z">
</path>
</svg>
</p>
<p>
Loading data...
</p>
-20
View File
@@ -1,20 +0,0 @@
import Component from '@ember/component';
export default Component.extend({
tagName: 'ul',
classNames: ['proposal-list'],
actions: {
confirm(proposalId) {
if (this.contractInteractionEnabled) {
this.confirmProposal(proposalId);
} else {
window.alert('Only members can vote on proposals. Please ask someone to set you up.');
}
}
}
});
-20
View File
@@ -1,20 +0,0 @@
{{#each proposals as |proposal|}}
<li data-proposal-id={{proposal.id}} class={{if proposal.isExecuted "confirmed" "unconfirmed"}}>
<p class="meta">
<span class="category {{proposal.kind}}">♥ ({{proposal.kind}})</span>
<span class="recipient">{{proposal.contributor.name}}:</span>
</p>
<p class="kredits-amount">
<span class="amount">{{proposal.amount}}</span><span class="symbol">₭S</span>
</p>
<p class="description">
<span class="description">{{proposal.description}}</span>
</p>
<p class="voting">
{{#unless proposal.isExecuted}}
<span class="votes">({{proposal.votesCount}}/{{proposal.votesNeeded}} votes)</span>
<button {{action "confirm" proposal.id}}>+1</button>
{{/unless}}
</p>
</li>
{{/each}}
-11
View File
@@ -1,11 +0,0 @@
import Component from '@ember/component';
import { alias } from '@ember/object/computed';
export default Component.extend({
contributor: null,
tagName: 'img',
classNames: ['avatar'],
attributeBindings: ['src', 'title'],
src: alias('contributor.avatarURL'),
title: alias('contributor.name')
});
View File
Whitespace-only changes.
-6
View File
@@ -1,6 +0,0 @@
import Controller from '@ember/controller';
import { inject as service } from '@ember/service';
export default Controller.extend({
kredits: service(),
});
-30
View File
@@ -1,30 +0,0 @@
import Controller from '@ember/controller';
import { alias, filterBy, sort } from '@ember/object/computed';
import { inject as service } from '@ember/service';
export default Controller.extend({
kredits: service(),
contributors: alias('kredits.contributors'),
minedContributors: filterBy('contributors', 'id'),
contributorsSorting: Object.freeze(['name:asc']),
sortedContributors: sort('minedContributors', 'contributorsSorting'),
actions: {
save (contribution) {
const contributor = this.contributors.findBy('id', contribution.contributorId);
contribution.contributorIpfsHash = contributor.ipfsHash;
return this.kredits.addContribution(contribution)
.then(contribution => {
this.transitionToRoute('index');
return contribution;
});
}
}
});
-18
View File
@@ -1,18 +0,0 @@
import Controller from '@ember/controller';
import { inject as service } from '@ember/service';
export default Controller.extend({
kredits: service(),
actions: {
save (attributes) {
return this.kredits
.updateContributor(this.model.id, attributes)
.then(() => this.transitionToRoute('index'))
}
}
});
-18
View File
@@ -1,18 +0,0 @@
import Controller from '@ember/controller';
import { inject as service } from '@ember/service';
export default Controller.extend({
kredits: service(),
actions: {
save (contributor) {
return this.kredits
.addContributor(contributor)
.then(() => this.transitionToRoute('index'))
}
}
});
-43
View File
@@ -1,43 +0,0 @@
import Controller from '@ember/controller';
import { computed } from '@ember/object';
import { alias, not, sort } from '@ember/object/computed';
import { inject as service } from '@ember/service';
export default Controller.extend({
kredits: service(),
currentBlock: alias('kredits.currentBlock'),
contributions: alias('kredits.contributions'),
contributionsConfirmed: alias('kredits.contributionsConfirmed'),
contributionsUnconfirmed: alias('kredits.contributionsUnconfirmed'),
contributionsSorting: Object.freeze(['id:desc']),
contributionsUnconfirmedSorted: sort('contributionsUnconfirmed', 'contributionsSorting'),
contributionsConfirmedSorted: sort('contributionsConfirmed', 'contributionsSorting'),
kreditsByContributor: alias('kredits.kreditsByContributor'),
kreditsToplistSorting: computed('showUnconfirmedKredits', function(){
return this.showUnconfirmedKredits ? ['amountTotal:desc'] : ['amountConfirmed:desc'];
}),
kreditsToplist: sort('kreditsByContributor', 'kreditsToplistSorting'),
showUnconfirmedKredits: true,
hideUnconfirmedKredits: not('showUnconfirmedKredits'),
actions: {
vetoContribution (contributionId) {
this.kredits.veto(contributionId).then(transaction => {
console.debug('[controllers:index] Veto submitted to Ethereum blockhain: '+transaction.hash);
});
},
confirmProposal (proposalId) {
this.kredits.vote(proposalId).then(transaction => {
console.debug('[controllers:index] Vote submitted to Ethereum blockhain: '+transaction.hash);
});
}
}
});
-24
View File
@@ -1,24 +0,0 @@
import Controller from '@ember/controller';
import { alias, filterBy } from '@ember/object/computed';
import { inject as service } from '@ember/service';
export default Controller.extend({
kredits: service(),
contributors: alias('kredits.contributors'),
minedContributors: filterBy('contributors', 'id'),
actions: {
save(proposal) {
// contributorIpfsHash is needed for the proposal ipfs data. I'm not happy to do this here but I think to load all the contributors in addProposal again is a bit too much. I hope we can refactor it later.
let contributor = this.contributors.findBy('id', proposal.contributorId);
proposal.contributorIpfsHash = contributor.get('ipfsHash');
return this.kredits.addProposal(proposal)
.then((proposal) => {
this.transitionToRoute('index');
return proposal;
});
}
}
});
View File
Whitespace-only changes.
-20
View File
@@ -1,20 +0,0 @@
import Helper from '@ember/component/helper';
import { inject as service } from '@ember/service';
import { alias } from '@ember/object/computed';
export default Helper.extend({
kredits: service(),
currentBlock: alias('kredits.currentBlock'),
compute([contribution]) {
if (contribution.vetoed) {
return 'vetoed';
} else if (contribution.confirmedAt > this.currentBlock) {
return 'unconfirmed';
} else {
return 'confirmed'
}
}
});
-15
View File
@@ -1,15 +0,0 @@
import Helper from '@ember/component/helper';
import { inject as service } from '@ember/service';
import { alias } from '@ember/object/computed';
export default Helper.extend({
kredits: service(),
currentBlock: alias('kredits.currentBlock'),
compute([contribution]) {
return !contribution.vetoed &&
(contribution.confirmedAt <= this.currentBlock);
}
});
-16
View File
@@ -1,16 +0,0 @@
import Helper from '@ember/component/helper';
import { inject as service } from '@ember/service';
import { alias } from '@ember/object/computed';
import { isPresent } from '@ember/utils';
export default Helper.extend({
kredits: service(),
currentUser: alias('kredits.currentUser'),
compute([contributor]) {
return isPresent(contributor) && isPresent(this.currentUser) &&
contributor.account === this.currentUser.account;
}
});
-31
View File
@@ -1,31 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Kosmos Kredits</title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
{{content-for "head"}}
<link integrity="" rel="stylesheet" href="{{rootURL}}assets/vendor.css">
<link integrity="" rel="stylesheet" href="{{rootURL}}assets/kredits-web.css">
{{content-for "head-footer"}}
<script>
window.addEventListener('load', function() {
window.windowLoadComplete = true;
});
</script>
</head>
<body>
{{content-for "body"}}
<script src="{{rootURL}}assets/vendor.js"></script>
<script src="{{rootURL}}assets/kredits-web.js"></script>
{{content-for "body-footer"}}
</body>
</html>
View File
Whitespace-only changes.
-28
View File
@@ -1,28 +0,0 @@
import EmberObject from '@ember/object';
import bignumber from 'kredits-web/utils/cps/bignumber';
export default EmberObject.extend({
// Contract
id: null,
contributorId: null,
amount: null,
confirmedAt: bignumber('confirmedAtBlock', 'toNumber'),
vetoed: null,
ipfsHash: null,
creatorAccount: null,
// IPFS
kind: null,
description: null,
details: null,
url: null,
ipfsData: '',
init () {
this._super(...arguments);
this.set('details', {});
}
});
-31
View File
@@ -1,31 +0,0 @@
import { computed } from '@ember/object';
import EmberObject from '@ember/object';
import bignumber from 'kredits-web/utils/cps/bignumber';
import kreditsValue from 'kredits-web/utils/cps/kredits';
export default EmberObject.extend({
// Contract
id: bignumber('idRaw', 'toString'),
account: null,
balance: kreditsValue('balanceRaw'),
totalKreditsEarned: bignumber('totalKreditsEarnedRaw', 'toNumber'),
contributionsCount: bignumber('contributionsCountRaw', 'toNumber'),
isCore: false,
ipfsHash: null,
// IPFS
kind: null,
name: null,
url: null,
github_username: null,
github_uid: null,
wiki_username: null,
ipfsData: '',
avatarURL: computed('github_uid', function() {
let github_uid = this.github_uid;
if (github_uid) {
return `https://avatars2.githubusercontent.com/u/${github_uid}?v=3&s=128`;
}
}),
});
-32
View File
@@ -1,32 +0,0 @@
import EmberObject from '@ember/object';
import { alias } from '@ember/object/computed';
import bignumber from 'kredits-web/utils/cps/bignumber';
export default EmberObject.extend({
// Contract
id: bignumber('idRaw', 'toString'),
creatorAccount: null,
contributorId: bignumber('contributorIdRaw', 'toString'),
amount: bignumber('amountRaw', 'toNumber'),
votesCount: bignumber('votesCountRaw', 'toNumber'),
votesNeeded: bignumber('votesNeededRaw', 'toNumber'),
executed: null,
ipfsHash: null,
// Shortcuts
isExecuted: alias('executed'),
// IPFS
kind: null,
description: null,
details: null,
url: null,
ipfsData: '',
init () {
this._super(...arguments);
this.set('details', {});
}
});
-3
View File
@@ -1,3 +0,0 @@
import Resolver from 'ember-resolver';
export default Resolver;
-22
View File
@@ -1,22 +0,0 @@
import EmberRouter from '@ember/routing/router';
import config from './config/environment';
const Router = EmberRouter.extend({
location: config.locationType,
rootURL: config.rootURL
});
Router.map(function() {
this.route('proposals', function() {
this.route('new');
});
this.route('contributions', function() {
this.route('new');
});
this.route('contributors', function() {
this.route('new');
this.route('edit', { path: ':id/edit' });
});
});
export default Router;
View File
Whitespace-only changes.
-31
View File
@@ -1,31 +0,0 @@
import { inject as service } from '@ember/service';
import Route from '@ember/routing/route';
export default Route.extend({
kredits: service(),
beforeModel(transition) {
const kredits = this.kredits;
return kredits.setup().then(() => {
kredits.get('kredits').preflightChecks().catch((error) => {
console.error('Kredits preflight check failed!');
console.error(error);
});
if (kredits.get('accountNeedsUnlock')) {
if (confirm('It looks like you have an Ethereum wallet available. Please unlock your account.')) {
transition.retry();
}
}
}).catch((error) => {
console.log('Error initializing Kredits', error);
});
},
afterModel() {
return this.kredits.loadInitialData()
.then(() => {
this.kredits.addContractEventHandlers();
});
}
});
-29
View File
@@ -1,29 +0,0 @@
import { inject as service } from '@ember/service';
import Route from '@ember/routing/route';
import { alias } from '@ember/object/computed';
export default Route.extend({
kredits: service(),
contributors: alias('kredits.contributors'),
model(params) {
return this.kredits.contributors.findBy('id', params.id);
},
setupController (controller, model) {
this._super(controller, model);
controller.set('attributes', {
account: model.account,
name: model.name,
kind: model.kind,
url: model.url,
github_username: model.github_username,
github_uid: model.github_uid,
gitea_username: model.gitea_username,
wiki_username: model.wiki_username
});
}
});
-400
View File
@@ -1,400 +0,0 @@
import ethers from 'npm:ethers';
import Kredits from 'npm:kredits-contracts';
import RSVP from 'rsvp';
import Service from '@ember/service';
import EmberObject from '@ember/object';
import { computed } from '@ember/object';
import { alias, notEmpty } from '@ember/object/computed';
import { isEmpty } from '@ember/utils';
import groupBy from 'kredits-web/utils/group-by';
import formatKredits from 'kredits-web/utils/format-kredits';
import config from 'kredits-web/config/environment';
import Contributor from 'kredits-web/models/contributor'
import Proposal from 'kredits-web/models/proposal'
import Contribution from 'kredits-web/models/contribution'
export default Service.extend({
currentBlock: null,
currentUserAccounts: null, // default to not having an account. this is the wen web3 is loaded.
currentUser: null,
contributors: null,
contributions: null,
proposals: null,
currentUserIsContributor: notEmpty('currentUser'),
currentUserIsCore: alias('currentUser.isCore'),
hasAccounts: notEmpty('currentUserAccounts'),
accountNeedsUnlock: computed('currentUserAccounts', function() {
return this.currentUserAccounts && isEmpty(this.currentUserAccounts);
}),
contributionsUnconfirmed: computed('contributions.[]', 'currentBlock', function() {
return this.contributions.filter(contribution => {
return contribution.confirmedAt > this.currentBlock;
});
}),
contributionsConfirmed: computed('contributions.[]', 'currentBlock', function() {
return this.contributions
.filterBy('vetoed', false)
.filter(contribution => {
return contribution.confirmedAt <= this.currentBlock;
});
}),
kreditsByContributor: computed('contributionsUnconfirmed.@each.vetoed', 'contributors.[]', function() {
const contributionsUnconfirmed = this.contributionsUnconfirmed.filterBy('vetoed', false);
const contributionsGrouped = groupBy(contributionsUnconfirmed, 'contributorId');
const contributorsWithUnconfirmed = contributionsGrouped.map(c => c.value.toString());
const contributorsWithOnlyConfirmed = this.contributors.reject(c => contributorsWithUnconfirmed.includes(c.id))
const kreditsByContributor = contributionsGrouped.map(c => {
const amountUnconfirmed = c.items.mapBy('amount').reduce((a, b) => a + b);
const contributor = this.contributors.findBy('id', c.value.toString());
return EmberObject.create({
contributor: contributor,
amountUnconfirmed: amountUnconfirmed,
amountConfirmed: contributor.totalKreditsEarned,
amountTotal: contributor.totalKreditsEarned + amountUnconfirmed
})
});
contributorsWithOnlyConfirmed.forEach(c => {
kreditsByContributor.push(EmberObject.create({
contributor: c,
amountUnconfirmed: 0,
amountConfirmed: c.totalKreditsEarned,
amountTotal: c.totalKreditsEarned
}));
})
return kreditsByContributor;
}),
init () {
this._super(...arguments);
this.set('contributors', []);
this.set('proposals', []);
this.set('contributions', []);
},
// This is called in the application route's beforeModel(). So it is
// initialized before everything else, and we can rely on the ethProvider and
// the potential currentUserAccounts to be available
getEthProvider () {
let ethProvider;
return new RSVP.Promise(async (resolve) => {
function instantiateWithoutAccount () {
console.debug('[kredits] Creating new instance from npm module class');
console.debug(`[kredits] providerURL: ${config.web3ProviderUrl}`);
ethProvider = new ethers.providers.JsonRpcProvider(config.web3ProviderUrl);
resolve({
ethProvider: ethProvider,
ethSigner: null
});
}
async function instantiateWithAccount (web3Provider, context) {
console.debug('[kredits] Using user-provided instance, e.g. from Mist browser or Metamask');
ethProvider = new ethers.providers.Web3Provider(web3Provider);
// const network = await ethProvider.getNetwork();
ethProvider.listAccounts().then(accounts => {
context.set('currentUserAccounts', accounts);
const ethSigner = accounts.length === 0 ? null : ethProvider.getSigner();
resolve({
ethProvider,
ethSigner
});
});
}
if (window.ethereum) {
try {
// Request account access if needed
await window.ethereum.enable();
// Acccounts now exposed
instantiateWithAccount(window.ethereum, this);
} catch (error) {
instantiateWithoutAccount();
}
}
// Legacy dapp browsers...
else if (window.web3) {
instantiateWithAccount(window.web3.currentProvider, this);
}
// Non-dapp browsers...
else {
instantiateWithoutAccount();
}
});
},
setup () {
return this.getEthProvider().then((providerAndSigner) => {
let kredits = new Kredits(providerAndSigner.ethProvider, providerAndSigner.ethSigner, {
addresses: { Kernel: config.kreditsKernelAddress },
apm: config.kreditsApmDomain,
ipfsConfig: config.ipfs
});
return kredits
.init()
.then(async (kredits) => {
this.set('kredits', kredits);
this.set('currentBlock', await kredits.provider.getBlockNumber());
if (this.currentUserAccounts && this.currentUserAccounts.length > 0) {
this.getCurrentUser.then((contributorData) => {
this.set('currentUser', contributorData);
});
}
return kredits;
});
});
},
totalSupply: computed(function() {
return this.kredits.Token.functions.totalSupply().then(total => {
return formatKredits(total);
})
}),
totalKreditsEarned: computed(function() {
return this.kredits.Contribution.functions.totalKreditsEarned(true)
.then(total => total.toNumber());
}),
loadInitialData () {
return this.getContributors()
.then(contributors => this.contributors.pushObjects(contributors))
.then(() => this.getContributions())
.then(contributions => this.contributions.pushObjects(contributions))
},
addContributor (attributes) {
if (attributes.github_uid) {
const uidInt = parseInt(attributes.github_uid);
attributes.github_uid = uidInt;
}
console.debug('[kredits] add contributor', attributes);
return this.kredits.Contributor.add(attributes, { gasLimit: 350000 })
.then(data => {
console.debug('[kredits] add contributor response', data);
});
},
updateContributor (id, attributes) {
if (attributes.github_uid) {
const uidInt = parseInt(attributes.github_uid);
attributes.github_uid = uidInt;
}
console.debug('[kredits] update contributor', attributes);
return this.kredits.Contributor.updateProfile(id, attributes, { gasLimit: 350000 })
.then(data => {
console.debug('[kredits] updateProfile response', data);
});
},
getContributors () {
return this.kredits.Contributor.all()
.then((contributors) => {
return contributors.map((contributor) => {
return Contributor.create(contributor);
});
});
},
addContribution (attributes) {
console.debug('[kredits] add contribution', attributes);
return this.kredits.Contribution.addContribution(attributes, { gasLimit: 300000 })
.then(data => {
console.debug('[kredits] add contribution response', data);
attributes.contributor = this.contributors.findBy('id', attributes.contributorId);
const contribution = Contribution.create(attributes);
// TODO receive from wrapper
contribution.set('confirmedAtBlock', data.blockNumber + 40320);
this.contributions.pushObject(contribution);
return contribution;
});
},
addProposal (attributes) {
console.debug('[kredits] add proposal', attributes);
return this.kredits.Proposal.addProposal(attributes)
.then((data) => {
console.debug('[kredits] add proposal response', data);
attributes.contributor = this.contributors.findBy('id', attributes.contributorId);
return Proposal.create(attributes);
});
},
getProposals () {
return this.kredits.Proposal.all()
.then((proposals) => {
return proposals.map((proposal) => {
proposal.contributor = this.contributors.findBy('id', proposal.contributorId.toString());
return Proposal.create(proposal);
});
});
},
getContributions () {
return this.kredits.Contribution.all({page: {size: 200}})
.then(contributions => {
return contributions.map(contribution => {
contribution.contributor = this.contributors.findBy('id', contribution.contributorId.toString());
return Contribution.create(contribution);
});
});
},
vote (proposalId) {
console.debug('[kredits] vote for', proposalId);
return this.kredits.Proposal.functions.vote(proposalId)
.then(data => {
console.debug('[kredits] vote response', data);
return data;
});
},
veto (contributionId) {
console.debug('[kredits] veto against', contributionId);
return this.kredits.Contribution.functions.veto(contributionId, { gasLimit: 300000 })
.then(data => {
console.debug('[kredits] veto response', data);
return data;
});
},
getCurrentUser: computed('kredits.provider', function() {
if (isEmpty(this.currentUserAccounts)) {
return RSVP.resolve();
}
return this.kredits.Contributor
.functions.getContributorIdByAddress(this.get('currentUserAccounts.firstObject'))
.then((id) => {
// check if the user is a contributor or not
if (id === 0) {
return RSVP.resolve();
} else {
return this.kredits.Contributor.getById(id);
}
});
}),
findProposalById(proposalId) {
return this.proposals.findBy('id', proposalId.toString());
},
// Contract events
addContractEventHandlers () {
this.kredits.Contributor
.on('ContributorProfileUpdated', this.handleContributorChange.bind(this))
.on('ContributorAccountUpdated', this.handleContributorChange.bind(this))
.on('ContributorAdded', this.handleContributorChange.bind(this))
this.kredits.Contribution
.on('ContributionVetoed', this.handleContributionVetoed.bind(this))
this.kredits.Proposal
.on('ProposalCreated', this.handleProposalCreated.bind(this))
.on('ProposalVoted', this.handleProposalVoted.bind(this))
.on('ProposalExecuted', this.handleProposalExecuted.bind(this));
this.kredits.Token
.on('Transfer', this.handleTransfer.bind(this));
},
async handleContributorChange (contributorId, ...args) {
console.debug('[kredits] Contributor add/update event received for ID', contributorId);
console.debug('[kredits] Event data:', args);
const contributorData = await this.kredits.Contributor.getById(contributorId);
const newContributor = Contributor.create(contributorData);
const oldContributor = this.contributors.findBy('id', contributorId.toString());
if (oldContributor) {
console.debug('[kredits] old contributor', oldContributor);
this.contributors.removeObject(oldContributor);
}
console.debug('[kredits] new contributor', newContributor);
this.contributors.pushObject(newContributor);
},
handleContributionVetoed (contributionId) {
console.debug('[kredits] ContributionVetoed event received for ', contributionId);
const contribution = this.contributions.findBy('id', contributionId);
console.debug('[kredits] contribution', contribution);
if (contribution) {
contribution.set('vetoed', true);
}
},
handleProposalCreated (proposalId) {
let proposal = this.findProposalById(proposalId);
if (proposal) {
console.debug('[events] proposal exists, not adding from event');
return;
}
this.kredits.Proposal.getById(proposalId)
.then((proposal) => {
proposal.contributor = this.contributors.findBy('id', proposal.contributorId.toString());
this.proposals.pushObject(Proposal.create(proposal));
});
},
// TODO: We may want to reload that proposal to show the voter as voted
handleProposalVoted (proposalId, voterId, totalVotes) {
let proposal = this.findProposalById(proposalId);
if (proposal) {
proposal.set('votesCount', totalVotes);
}
},
handleProposalExecuted (proposalId, contributorId, amount) {
let proposal = this.findProposalById(proposalId);
if (proposal.get('isExecuted')) {
console.debug('[events] proposal already executed, not adding from event');
return;
}
proposal.set('executed', true);
this.contributors
.findBy('id', contributorId.toString())
.incrementProperty('balance', amount);
},
handleTransfer (from, to, value) {
value = value.toNumber();
this.contributors
.findBy('address', from)
.decrementProperty('balance', value);
this.contributors
.findBy('address', to)
.incrementProperty('balance', value);
},
});
-42
View File
@@ -1,42 +0,0 @@
button, input[type=submit], .button {
display: inline-block;
padding: 0.6rem 2rem;
background-color: rgba(22, 21, 40, 0.6);
border: 1px solid rgba(22, 21, 40, 1);
border-radius: 3px;
color: $primary-color;
font-weight: 500;
text-decoration: none;
text-transform: uppercase;
cursor: pointer;
letter-spacing: 0.1em;
&:hover {
background-color: rgba(22, 21, 40, 0.8);
}
&.small {
font-size: 0.8rem;
padding: 0.2rem 0.8rem;
}
&.danger {
color: $red;
background-color: rgba(40, 21, 21, 0.6);
border-color: rgba(40, 21, 21, 1);
&:hover {
background-color: rgba(40, 21, 21, 0.8);
}
}
&.green {
color: $green;
background-color: rgba(21, 40, 21, 0.6);
border-color: rgba(21, 40, 21, 1);
&:hover {
background-color: rgba(21, 40, 21, 0.8);
}
}
}
-15
View File
@@ -1,15 +0,0 @@
$blue: #68d7fb;
$purple: #8f68fb;
$pink: #e068fb;
$green: #97fb68;
$yellow: #fbe468;
$red: #fb6868;
$primary-color: $blue;
$body-text-color: #fff;
#topbar {
background-color: rgba(255, 0, 255, .2);
}
-107
View File
@@ -1,107 +0,0 @@
section#add-contributor,
section#add-contribution,
section#add-proposal {
form {
p {
margin-bottom: 1.5rem;
&.actions {
padding-top: 1.5rem;
text-align: center;
a {
color: $primary-color;
margin-left: 1rem;
}
}
}
label {
display: block;
margin-bottom: 0.5rem;
opacity: 0.7;
}
input[type=text], select {
width: 100%;
padding: 1rem;
border: none;
border-bottom: 1px solid rgba(255,255,255,0.2);
background-color: rgba(22, 21, 40, 0.3);
color: #fff;
font-size: 1.2rem;
transition: border-color 0.1s linear;
&:focus, &.valid {
background-color: rgba(22, 21, 40, 0.6);
}
&:focus {
border-color: $blue;
}
&::placeholder {
color: rgba(238, 238, 238, 0.5);
}
}
select {
-moz-appearance: none;
-webkit-appearance: none;
appearance: none;
border-radius: 0;
background-color: rgba(22, 21, 40, 0.6);
background-image:
linear-gradient(45deg, transparent 50%, gray 50%),
linear-gradient(135deg, gray 50%, transparent 50%);
background-position:
calc(100% - 1.5rem) calc(1rem + 0.5rem),
calc(100% - 1rem) calc(1rem + 0.5rem);
background-size:
0.5rem 0.5rem,
0.5rem 0.5rem;
background-repeat: no-repeat;
&:invalid {
color: rgba(238, 238, 238, 0.5);
}
}
input[type=submit] {
padding: 0.6rem 2rem;
&:disabled {
background-color: transparent;
}
}
input[type=checkbox] {
display: none;
}
label.checkbox {
line-height: 3.2rem;
font-size: 1.2rem;
&::before {
display: inline-block;
margin-right: 0.8rem;
height: 3.2rem;
width: 3.2rem;
font-size: 2rem;
background-color: rgba(22, 21, 40, 0.3);
border-bottom: 1px solid rgba(255,255,255,0.2);
text-align: center;
vertical-align: middle;
content: '✓';
color: rgba(255,255,255,0.2);
}
}
input[type=checkbox]:checked + label.checkbox {
&::before {
background-color: rgba(22, 21, 40, 0.6);
color: #fff;
}
}
}
}
-82
View File
@@ -1,82 +0,0 @@
main {
padding: 1rem 2rem;
@include media-max(small) {
padding: 1rem;
}
&#index {
width: 100%;
display: grid;
grid-row-gap: 2rem;
grid-template-areas:
"stats"
"contributions";
}
&.center-column {
display: flex;
flex-direction: column;
align-items: center;
section {
width: 600px;
max-width: 100%;
header {
text-align: center;
}
}
}
}
@media (min-width: 550px) {
main {
&#index {
grid-column-gap: 4rem;
grid-row-gap: 2rem;
grid-template-columns: 2fr 4fr;
grid-template-areas:
"stats contributions";
}
}
}
main section {
margin-bottom: 5rem;
&:first-of-type {
margin-top: 2rem;
}
@include media-max(small) {
margin-bottom: 5rem;
}
header {
margin-bottom: 3rem;
&.with-nav {
display: grid;
grid-template-columns: auto 5rem;
grid-template-areas:
"title" "actions";
}
h2 {
display: inline-block;
// padding-left: 1.2rem;
}
nav {
display: flex;
flex-direction: row;
align-items: center;
justify-content: flex-end;
}
@include media-max(small) {
margin-bottom: 2rem;
}
}
}
-33
View File
@@ -1,33 +0,0 @@
$breakpoints-max: (
small: 600px,
medium: 960px,
large: 1280px
);
$breakpoints-min: (
small: 601px,
medium: 961px,
large: 1281px
);
@mixin media-max($screen-size) {
@if map-has-key($breakpoints-max, $screen-size) {
@media (max-width: map-get($breakpoints-max, $screen-size)) {
@content;
}
} @else {
// Debugging
@warn "'#{$screen-size}' has not been declared as a breakpoint."
}
}
@mixin media-min($screen-size) {
@if map-has-key($breakpoints-min, $screen-size) {
@media (min-width: map-get($breakpoints-min, $screen-size)) {
@content;
}
} @else {
// Debugging
@warn "'#{$screen-size}' has not been declared as a breakpoint."
}
}
-105
View File
@@ -1,105 +0,0 @@
* {
margin: 0;
padding: 0;
box-sizing: border-box;
font-size: 14px;
}
*:hover, *:active, *:focus {
outline: none;
-webkit-tap-highlight-color: rgba(255, 255, 255, 0);
-webkit-tap-highlight-color: transparent;
}
@import "mediaqueries";
@import "layout";
@import "colors";
$font-family-sans: 'Open Sans', sans-serif;
body {
font-family: $font-family-sans;
font-weight: 300;
background-image: linear-gradient(to bottom, rgba(22, 21, 40, .4), rgba(0, 0, 0, .75)), url('/img/bg.jpg');
background-repeat: none;
background-attachment: fixed;
color: $body-text-color;
}
@media screen and (min-width: 900px) {
body {
background-size: cover;
}
}
h1, h2, h3, h4, h5, input, button {
font-family: $font-family-sans;
font-size: 1rem;
font-weight: 300;
}
section {
h2 {
font-size: 1.4rem;
color: $primary-color;
}
&#people {
.content {
p.stats {
margin-bottom: 1rem;
font-size: 1rem;
color: white;
text-align: center;
span.number {
font-weight: 600;
}
}
}
}
&#contributions-by-type {
.chart {
width: 50%;
margin-left: auto;
margin-right: auto;
@include media-max(small) {
width: 75%;
}
}
}
&#proposals-open, &#proposals-closed {
.actions {
padding-top: 3rem;
font-size: 1rem;
color: $primary-color;
text-align: center;
@include media-max(small) {
padding-top: 2rem;
}
a {
color: $primary-color;
}
}
}
}
@media (min-width: 550px) {
section {
h2 {
font-size: 2rem;
}
}
}
@import "buttons";
@import "forms";
@import "components/topbar";
@import "components/loading-spinner";
@import "components/contributor-list";
@import "components/proposal-list";
@import "components/contribution-list";
@import "components/user-avatar";
@@ -1,134 +0,0 @@
main section {
@include media-max(small) {
&#contributions-unconfirmed, &#contributions-confirmed {
margin-top: 0;
}
}
}
ul.contribution-list {
clear: both;
width: 100%;
list-style: none;
li {
display: grid;
grid-template-columns: auto 5rem 5rem;
grid-row-gap: 0.5rem;
padding: 0.8rem 1.2rem;
background-color: rgba(255,255,255,0.1);
font-size: 1.2rem;
border-bottom: 1px solid rgba(255,255,255,0.2);
&:first-of-type {
border-top: 1px solid rgba(255,255,255,0.2);
}
&.confirmed {
grid-template-columns: auto 5rem;
}
&.vetoed {
grid-template-columns: auto 5rem;
text-decoration: line-through;
opacity: 0.6;
}
p {
align-self: center;
margin: 0;
font-size: inherit;
line-height: 2rem;
&.kredits-amount, &.voting {
text-align: right;
}
}
span {
font-size: inherit;
&.title {
a {
font-size: inherit;
text-decoration: none;
color: $body-text-color;
}
a:hover, a:active {
color: $primary-color;
}
}
}
.description {
line-height: 1.4em;
font-size: 1rem;
}
.category {
color: $blue;
padding-right: 0.2rem;
&.community { color: $red; }
&.dev { color: $pink; }
&.design { color: $yellow; }
&.docs { color: $green; }
&.ops { color: $purple; }
}
.amount {
font-weight: 500;
}
.symbol {
font-size: 0.8rem;
padding-left: 0.2rem;
}
.recipient {
font-weight: 500;
}
.votes {
font-size: 1rem;
color: $primary-color;
margin-right: 0.5rem;
}
}
}
@media (min-width: 550px) {
ul.proposal-list {
li {
grid-template-columns: auto 10rem;
grid-row-gap: 0.5rem;
p {
&.kredits-amount, &.voting {
text-align: right;
}
}
&.unconfirmed {
p {
&.kredits-amount, &.voting {
text-align: right;
}
&.description {
grid-column-start: span 1;
}
&.voting {
grid-column-start: span 1;
}
}
}
.description {
font-size: inherit;
}
}
}
}
@@ -1,90 +0,0 @@
table.contributor-list {
width: 100%;
border-collapse: collapse;
margin-bottom: 1.5rem;
tr {
border-bottom: 1px solid rgba(255,255,255,0.2);
&:first-of-type {
border-top: 1px solid rgba(255,255,255,0.2);
}
background-color: rgba(255,255,255,0.1);
&.current-user {
background-color: rgba(255,255,255,0.2);
}
&.metadata {
height: 0;
visibility: hidden;
&:not(.visible) {
border-bottom: none;
}
td {
padding: 0 1.2rem;
}
a {
color: $primary-color;
&:hover, &:active {
color: #fff;
}
}
ul {
list-style: none;
display: block;
overflow: hidden;
height: 0;
li {
display: inline;
&+li {
margin-left: 1rem;
}
}
}
&.visible {
height: auto;
visibility: visible;
ul {
height: auto;
}
}
}
td {
padding: 0 1.2rem;
line-height: 3.6rem;
&.person {
text-align: left;
font-size: 1.2rem;
img.avatar {
margin-right: 0.2rem;
}
}
&.kredits {
text-align: right;
.amount {
font-size: 1.2rem;
font-weight: 500;
}
.symbol {
font-size: 0.8rem;
padding-left: 0.2rem;
}
}
pre {
line-height: 1rem;
padding-bottom: 1rem;
}
}
}
}
@@ -1,37 +0,0 @@
@keyframes pulse {
from {
opacity: 0.1;
}
to {
opacity: 0.6;
}
}
.loading-spinner {
margin-top: 12rem;
text-align: center;
font-size: 1.4rem;
color: $primary-color;
@include media-max(small) {
margin-top: 6rem;
}
svg {
width: 200px;
height: 200px;
margin-bottom: 2rem;
#path-comet {
fill: $primary-color;
opacity: 0.1;
animation-name: pulse;
animation-iteration-count: infinite;
animation-timing-function: ease-in-out;
animation-direction: alternate;
animation-duration: 1s;
}
}
}
-114
View File
@@ -1,114 +0,0 @@
ul.proposal-list {
clear: both;
width: 100%;
list-style: none;
li {
display: grid;
grid-template-columns: auto 5rem;
grid-row-gap: 0.5rem;
padding: 1rem 1.2rem;
background-color: rgba(255,255,255,0.1);
font-size: 1.2rem;
border-bottom: 1px solid rgba(255,255,255,0.2);
&:first-of-type {
border-top: 1px solid rgba(255,255,255,0.2);
}
p {
align-self: center;
margin: 0;
font-size: inherit;
line-height: 2rem;
&.kredits-amount, &.voting {
text-align: right;
}
&.description {
grid-column-start: span 2;
}
&.voting {
grid-column-start: span 2;
}
}
span {
font-size: inherit;
}
.description {
line-height: 1.4em;
font-size: 1rem;
}
.category {
color: $blue;
padding-right: 0.2rem;
&.community { color: $red; }
&.dev { color: $pink; }
&.design { color: $yellow; }
&.docs { color: $green; }
&.ops { color: $purple; }
}
.amount {
font-weight: 500;
}
.symbol {
font-size: 1rem;
font-weight: 500;
padding-left: 0.2rem;
}
.recipient {
font-weight: 500;
}
.votes {
font-size: 1rem;
color: $primary-color;
margin-right: 0.5rem;
}
}
}
@media (min-width: 550px) {
ul.proposal-list {
li {
grid-template-columns: auto 10rem;
grid-row-gap: 0.5rem;
p {
&.kredits-amount, &.voting {
text-align: right;
}
}
&.unconfirmed {
p {
&.kredits-amount, &.voting {
text-align: right;
}
&.description {
grid-column-start: span 1;
}
&.voting {
grid-column-start: span 1;
}
}
}
.description {
font-size: inherit;
}
}
}
}
-22
View File
@@ -1,22 +0,0 @@
#topbar {
padding: 0 1rem;
height: 3rem;
line-height: 3rem;
background-color: rgba(0,0,0,.3);
@include media-min(medium) {
padding: 0 2rem;
height: 4rem;
line-height: 4rem;
}
h1 {
display: inline-block;
text-transform: uppercase;
}
section#user-account {
display: inline-block;
float: right;
}
}
-7
View File
@@ -1,7 +0,0 @@
img.avatar {
width: 2rem;
height: 2rem;
vertical-align: middle;
margin-right: 0.2rem;
border-radius: 1rem;
}
-1
View File
@@ -1 +0,0 @@
{{loading-spinner}}
-16
View File
@@ -1,16 +0,0 @@
<header id="topbar">
<h1>Kosmos Kredits</h1>
<section id="user-account">
{{#if kredits.hasAccounts }}
{{#if kredits.currentUser}}
{{kredits.currentUser.name}}
{{#if kredits.currentUserIsCore}}(core){{/if}}
{{/if}}
{{else}}
Anonymous
{{/if}}
</section>
</header>
{{outlet}}
View File
Whitespace-only changes.
-13
View File
@@ -1,13 +0,0 @@
<main class="center-column">
<section id="add-contribution">
<header>
<h2>Submit a contribution</h2>
</header>
<div class="content">
{{add-contribution contributors=sortedContributors save=(action "save")}}
</div>
</section>
</main>
-13
View File
@@ -1,13 +0,0 @@
<main class="center-column">
<section id="add-contributor">
<header>
<h2>Update contributor profile</h2>
</header>
<div class="content">
{{add-contributor attributes=attributes save=(action "save")}}
</div>
</section>
</main>
-13
View File
@@ -1,13 +0,0 @@
<main class="center-column">
<section id="add-contributor">
<header>
<h2>Add contributor profile</h2>
</header>
<div class="content">
{{add-contributor save=(action "save")}}
</div>
</section>
</main>
-69
View File
@@ -1,69 +0,0 @@
<main id="index">
<div id="stats">
<section id="people">
<header class="with-nav">
<h2>Contributors</h2>
{{#if kredits.hasAccounts}}
<nav>
{{link-to "add" "contributors.new" title="Add contributor profile" class="button small green"}}
</nav>
{{/if}}
</header>
<div class="content">
{{contributor-list contributorList=kreditsToplist
showUnconfirmedKredits=showUnconfirmedKredits}}
<p class="stats">
<span class="number">{{await kredits.totalKreditsEarned}}</span> kredits confirmed and issued to
<span class="number">{{contributorsWithKredits.length}}</span> contributors
</p>
<p class="stats">
{{input type="checkbox" id="hide-unnconfirmed-kredits" checked=showUnconfirmedKredits}}
<label for="hide-unnconfirmed-kredits">Show unconfirmed kredits in toplist</label>
</p>
</div>
</section>
<section id="contributions-by-type">
<header>
<h2>Contributions by type</h2>
</header>
<div class="content">
{{chart-contributions-by-type contributions=contributions}}
</div>
</section>
</div>
<div id="contributions">
{{#if contributionsUnconfirmed}}
<section id="contributions-unconfirmed">
<header class="with-nav">
<h2>Latest Contributions</h2>
{{#if kredits.hasAccounts}}
<nav>
{{link-to "add" "contributions.new" title="Submit a contribution" class="button small green"}}
</nav>
{{/if}}
</header>
<div class="content">
{{!-- TODO: We need a better naming for kredits.hasAccounts --}}
{{contribution-list contributions=contributionsUnconfirmedSorted
vetoContribution=(action "vetoContribution")
contractInteractionEnabled=kredits.hasAccounts}}
</div>
</section>
{{/if}}
<section id="contributions-confirmed">
<header>
<h2>Confirmed Contributions</h2>
</header>
<div class="content">
{{contribution-list contributions=contributionsConfirmedSorted
vetoContribution=(action "vetoContribution")}}
</div>
</section>
</div>
</main>
-10
View File
@@ -1,10 +0,0 @@
<section id="add-proposal">
<header>
<h2>Add Proposal</h2>
</header>
<div class="content">
{{add-proposal contributors=minedContributors save=(action "save")}}
</div>
</section>
-20
View File
@@ -1,20 +0,0 @@
import { computed } from '@ember/object';
import ethers from 'npm:ethers';
export default function(dependentKey, converterMethod) {
return computed(dependentKey, {
get () {
let value = this.get(dependentKey);
if (value && ethers.utils.BigNumber.isBigNumber(value)) {
return value[converterMethod]();
} else {
return value;
}
},
set (key, value) {
const bnValue = ethers.utils.bigNumberify(value);
this.set(dependentKey, bnValue);
return bnValue[converterMethod]();
}
});
}
-17
View File
@@ -1,17 +0,0 @@
import { computed } from '@ember/object';
import ethers from 'npm:ethers';
import formatKredits from 'kredits-web/utils/format-kredits';
export default function(dependentKey, options = {}) {
return computed(dependentKey, {
get () {
const value = this.get(dependentKey);
return formatKredits(value, options);
},
set (key, value) {
const bnValue = ethers.utils.bigNumberify(value);
this.set(dependentKey, bnValue);
return formatKredits(bnValue, options);
}
});
}
-9
View File
@@ -1,9 +0,0 @@
import ethers from 'npm:ethers';
export default function(value, options = {}) {
let etherValue = ethers.utils.formatEther(value);
if (!options.decimals) {
etherValue = parseInt(etherValue).toString();
}
return etherValue;
}
-27
View File
@@ -1,27 +0,0 @@
//
// Code from https://github.com/HeroicEric/ember-group-by (MIT licensed)
//
import { A } from '@ember/array';
import { get } from '@ember/object';
import { isPresent } from '@ember/utils';
export default function groupBy (collection, property) {
let groups = A();
let items = collection;
if (items) {
items.forEach(function(item) {
let value = get(item, property);
let group = groups.findBy('value', value);
if (isPresent(group)) {
get(group, 'items').push(item);
} else {
group = { property: property, value: value, items: [item] };
groups.push(group);
}
});
}
return groups;
}
@@ -0,0 +1 @@
"use strict";define("kredits-web/app",["exports","ember","kredits-web/resolver","ember-load-initializers","kredits-web/config/environment"],function(e,t,n,o,s){var r=void 0;t.default.MODEL_FACTORY_INJECTIONS=!0,r=t.default.Application.extend({modulePrefix:s.default.modulePrefix,podModulePrefix:s.default.podModulePrefix,Resolver:n.default}),(0,o.default)(r,s.default.modulePrefix),e.default=r}),define("kredits-web/components/add-contributor/component",["exports","ember"],function(e,t){e.default=t.default.Component.extend({id:null,realName:null,address:null,classId:function(){var e=this.get("id");return t.default.isEmpty(e)?null:"valid"}.property("id"),classRealName:function(){var e=this.get("realName");return t.default.isEmpty(e)?null:"valid"}.property("realName"),classAddress:function(){var e=this.get("address");return t.default.isEmpty(e)?null:"valid"}.property("address"),actions:{save:function(){console.log("id",this.get("id")),console.log("realName",this.get("realName")),console.log("address",this.get("address"))}}})}),define("kredits-web/components/add-contributor/template",["exports"],function(e){e.default=Ember.HTMLBars.template({id:"cnYN+xuu",block:'{"statements":[["open-element","form",[]],["modifier",["action"],[["get",[null]],"save"],[["on"],["submit"]]],["flush-element"],["text","\\n "],["open-element","p",[]],["flush-element"],["text","\\n "],["append",["helper",["input"],null,[["name","type","placeholder","value","class"],["id","text","GitHub UID (123)",["get",["id"]],["get",["classId"]]]]],false],["text","\\n "],["close-element"],["text","\\n "],["open-element","p",[]],["flush-element"],["text","\\n "],["append",["helper",["input"],null,[["name","type","placeholder","value","class"],["realname","text","Carl Sagan",["get",["realName"]],["get",["classRealName"]]]]],false],["text","\\n "],["close-element"],["text","\\n "],["open-element","p",[]],["flush-element"],["text","\\n "],["append",["helper",["input"],null,[["name","type","placeholder","value","class"],["address","text","0xF18E631Ea191aE4ebE70046Fcb01a436554421BA4",["get",["address"]],["get",["classAddress"]]]]],false],["text","\\n "],["close-element"],["text","\\n "],["open-element","p",[]],["static-attr","class","actions"],["flush-element"],["text","\\n "],["open-element","input",[]],["static-attr","type","submit"],["static-attr","value","Save"],["flush-element"],["close-element"],["text","\\n "],["close-element"],["text","\\n"],["close-element"],["text","\\n"]],"locals":[],"named":[],"yields":[],"blocks":[],"hasPartials":false}',meta:{moduleName:"kredits-web/components/add-contributor/template.hbs"}})}),define("kredits-web/components/contributor-list/component",["exports","ember"],function(e,t){e.default=t.default.Component.extend({tagName:"table",classNames:"contributor-list"})}),define("kredits-web/components/contributor-list/template",["exports"],function(e){e.default=Ember.HTMLBars.template({id:"3EKzDpyc",block:'{"statements":[["open-element","tbody",[]],["flush-element"],["text","\\n"],["block",["each"],[["get",["contributors"]]],null,0],["close-element"],["text","\\n"]],"locals":[],"named":[],"yields":[],"blocks":[{"statements":[["text"," "],["open-element","tr",[]],["flush-element"],["text","\\n "],["open-element","td",[]],["static-attr","class","person"],["flush-element"],["text","\\n "],["open-element","img",[]],["static-attr","class","avatar"],["dynamic-attr","src",["unknown",["contributor","avatarURL"]],null],["flush-element"],["close-element"],["text","\\n "],["append",["unknown",["contributor","github_username"]],false],["text","\\n "],["close-element"],["text","\\n "],["open-element","td",[]],["static-attr","class","kredits"],["flush-element"],["text","\\n "],["open-element","span",[]],["static-attr","class","amount"],["flush-element"],["append",["unknown",["contributor","kredits"]],false],["close-element"],["text","\\n "],["open-element","span",[]],["static-attr","class","symbol"],["flush-element"],["text","₭S"],["close-element"],["text","\\n "],["close-element"],["text","\\n "],["close-element"],["text","\\n"]],"locals":["contributor"]}],"hasPartials":false}',meta:{moduleName:"kredits-web/components/contributor-list/template.hbs"}})}),define("kredits-web/components/loading-spinner/component",["exports","ember"],function(e,t){e.default=t.default.Component.extend({classNames:["loading-spinner"]})}),define("kredits-web/components/loading-spinner/template",["exports"],function(e){e.default=Ember.HTMLBars.template({id:"+vFITFyc",block:'{"statements":[["open-element","p",[]],["flush-element"],["text","\\n "],["open-element","svg",[]],["static-attr","xmlns","http://www.w3.org/2000/svg","http://www.w3.org/2000/xmlns/"],["static-attr","xmlns:xlink","http://www.w3.org/1999/xlink","http://www.w3.org/2000/xmlns/"],["static-attr","version","1.1"],["static-attr","x","0px"],["static-attr","y","0px"],["static-attr","viewBox","0 0 132 100"],["static-attr","enablLine truncated
@@ -0,0 +1 @@
{"version":3,"sources":["vendor/ember-cli/app-prefix.js","kredits-web/app.js","kredits-web/components/add-contribution/component.js","kredits-web/components/add-contribution/template.js","kredits-web/components/add-contributor/component.js","kredits-web/components/add-contributor/template.js","kredits-web/components/add-proposal/component.js","kredits-web/components/add-proposal/template.js","kredits-web/components/chart-contributions-by-type/component.js","kredits-web/components/chart-contributions-by-type/template.js","kredits-web/components/contribution-list/component.js","kredits-web/components/contribution-list/template.js","kredits-web/components/contributor-list/component.js","kredits-web/components/contributor-list/template.js","kredits-web/components/ember-chart.js","kredits-web/components/ember-flatpickr.js","kredits-web/components/loading-spinner/component.js","kredits-web/components/loading-spinner/template.js","kredits-web/components/proposal-list/component.js","kredits-web/components/proposal-list/template.js","kredits-web/components/user-avatar/component.js","kredits-web/components/user-avatar/template.js","kredits-web/controllers/application.js","kredits-web/controllers/contributions/new.js","kredits-web/controllers/contributors/new.js","kredits-web/controllers/index.js","kredits-web/controllers/proposals/new.js","kredits-web/helpers/and.js","kredits-web/helpers/app-version.js","kredits-web/helpers/await.js","kredits-web/helpers/contribution-status.js","kredits-web/helpers/eq.js","kredits-web/helpers/gt.js","kredits-web/helpers/gte.js","kredits-web/helpers/is-array.js","kredits-web/helpers/is-confirmed-contribution.js","kredits-web/helpers/is-current-user.js","kredits-web/helpers/is-equal.js","kredits-web/helpers/is-fulfilled.js","kredits-web/helpers/is-pending.js","kredits-web/helpers/is-rejected.js","kredits-web/helpers/lt.js","kredits-web/helpers/lte.js","kredits-web/helpers/not-eq.js","kredits-web/helpers/not.js","kredits-web/helpers/or.js","kredits-web/helpers/promise-all.js","kredits-web/helpers/promise-hash.js","kredits-web/helpers/promise-rejected-reason.js","kredits-web/helpers/xor.js","kredits-web/initializers/app-version.js","kredits-web/initializers/container-debug-adapter.js","kredits-web/initializers/export-application-global.js","kredits-web/models/contribution.js","kredits-web/models/contributor.js","kredits-web/models/proposal.js","kredits-web/resolver.js","kredits-web/router.js","kredits-web/routes/application.js","kredits-web/services/ajax.js","kredits-web/services/kredits.js","kredits-web/templates/application-loading.js","kredits-web/templates/application.js","kredits-web/templates/contributions/new.js","kredits-web/templates/contributors/new.js","kredits-web/templates/index.js","kredits-web/templates/proposals/new.js","kredits-web/utils/cps/bignumber.js","kredits-web/utils/cps/kredits.js","kredits-web/utils/format-kredits.js","kredits-web/utils/group-by.js","vendor/ember-cli/app-config.js","vendor/ember-cli/app-boot.js"],"names":["define","_exports","_resolver","_emberLoadInitializers","_environment","Object","defineProperty","value","default","App","Ember","Application","extend","modulePrefix","podModulePrefix","Resolver","_default","_slicedToArray","arr","i","Array","isArray","_arrayWithHoles","_arr","_n","_d","_e","undefined","_s","_i","Symbol","iterator","next","done","push","length","err","_iterableToArrayLimit","TypeError","_nonIterableRest","Component","attributes","contributors","freeze","isValidContributor","computed","notEmpty","isValidKind","isValidAmount","parseInt","this","amount","isValidDescription","isValidUrl","isValid","and","init","_super","apply","arguments","set","Date","contributorId","kind","date","description","url","reset","setProperties","actions","submit","_this","getProperties","keys","toISOString","split","save","then","console","warn","window","alert","finally","HTMLBars","template","id","block","meta","moduleName","kredits","inject","service","isValidAccount","isValidName","isValidURL","isValidGithubUID","isValidGithubUsername","isValidGiteaUsername","isValidWikiUsername","inProgress","account","name","github_username","github_uid","gitea_username","wiki_username","contributor","catch","didInsertElement","proposal","saved","scroll","categoryColors","contributions","chartOptions","legend","display","chartData","filterBy","map","c","reduce","kinds","datasets","data","borderColor","borderWidth","labels","tagName","classNames","veto","contributionId","contractInteractionEnabled","vetoContribution","selectedContributor","toggleContributorInfo","showMetadata","contributorList","setEach","_emberChart","_emberFlatpickr","enumerable","get","confirm","proposalId","confirmProposal","attributeBindings","src","alias","title","Controller","minedContributors","contributorsSorting","sortedContributors","sort","contribution","findBy","contributorIpfsHash","ipfsHash","addContribution","transitionToRoute","addContributor","currentBlock","contributionsConfirLine truncated
@@ -0,0 +1 @@
{"version":3,"sources":["vendor/ember-cli/app-prefix.js","kredits-web/app.js","kredits-web/components/add-contributor/component.js","kredits-web/components/add-contributor/template.js","kredits-web/components/add-proposal/component.js","kredits-web/components/add-proposal/template.js","kredits-web/components/chart-contributions-by-type/component.js","kredits-web/components/chart-contributions-by-type/template.js","kredits-web/components/contribution-list/component.js","kredits-web/components/contribution-list/template.js","kredits-web/components/contributor-list/component.js","kredits-web/components/contributor-list/template.js","kredits-web/components/ember-chart.js","kredits-web/components/loading-spinner/component.js","kredits-web/components/loading-spinner/template.js","kredits-web/components/proposal-list/component.js","kredits-web/components/proposal-list/template.js","kredits-web/components/user-avatar/component.js","kredits-web/components/user-avatar/template.js","kredits-web/controllers/application.js","kredits-web/controllers/index.js","kredits-web/controllers/proposals/new.js","kredits-web/helpers/and.js","kredits-web/helpers/app-version.js","kredits-web/helpers/await.js","kredits-web/helpers/eq.js","kredits-web/helpers/gt.js","kredits-web/helpers/gte.js","kredits-web/helpers/is-array.js","kredits-web/helpers/is-current-user.js","kredits-web/helpers/is-equal.js","kredits-web/helpers/is-fulfilled.js","kredits-web/helpers/is-pending.js","kredits-web/helpers/is-rejected.js","kredits-web/helpers/lt.js","kredits-web/helpers/lte.js","kredits-web/helpers/not-eq.js","kredits-web/helpers/not.js","kredits-web/helpers/or.js","kredits-web/helpers/promise-all.js","kredits-web/helpers/promise-hash.js","kredits-web/helpers/promise-rejected-reason.js","kredits-web/helpers/xor.js","kredits-web/initializers/app-version.js","kredits-web/initializers/container-debug-adapter.js","kredits-web/initializers/export-application-global.js","kredits-web/models/contribution.js","kredits-web/models/contributor.js","kredits-web/models/proposal.js","kredits-web/resolver.js","kredits-web/router.js","kredits-web/routes/application.js","kredits-web/services/ajax.js","kredits-web/services/kredits.js","kredits-web/templates/application-loading.js","kredits-web/templates/application.js","kredits-web/templates/index.js","kredits-web/templates/proposals/new.js","kredits-web/utils/cps/bignumber.js","kredits-web/utils/cps/kredits.js","kredits-web/utils/format-kredits.js","vendor/ember-cli/app-config.js","vendor/ember-cli/app-boot.js"],"names":["define","_exports","_resolver","_emberLoadInitializers","_environment","Object","defineProperty","value","default","App","Ember","Application","extend","modulePrefix","podModulePrefix","Resolver","_default","Component","kredits","inject","service","attributes","isValidAccount","computed","notEmpty","isValidName","isValidURL","isValidGithubUID","isValidGithubUsername","isValidWikiUsername","isValid","and","init","this","_super","apply","arguments","set","account","name","kind","url","github_username","github_uid","wiki_username","isCore","didInsertElement","reset","setProperties","actions","submit","_this","keys","contributor","getProperties","saved","save","then","window","scroll","alert","HTMLBars","template","id","block","meta","moduleName","contributors","freeze","isValidContributor","isValidAmount","parseInt","amount","isValidDescription","isValidUrl","contributorId","description","proposal","categoryColors","contributions","chartOptions","legend","display","chartData","map","c","reduce","kinds","datasets","data","borderColor","borderWidth","labels","tagName","classNames","selectedContributor","toggleContributorInfo","get","setEach","_emberChart","confirm","proposalId","contractInteractionEnabled","confirmProposal","attributeBindings","src","alias","title","Controller","currentBlock","contributorsWithKredits","filter","gt","contributorsSorting","contributorsSorted","sort","contributionsSorting","contributionsUnconfirmed","contribution","confirmedAt","contributionsConfirmed","_this2","contributionsUnconfirmedSorted","contributionsConfirmedSorted","vetoContribution","vote","transaction","hash","_this3","addContributor","pushObject","minedContributors","filterBy","findBy","contributorIpfsHash","addProposal","transitionToRoute","_and","enumerable","_regexp","appVersion","_","length","undefined","version","APP","versionOnly","hideSha","shaOnly","hideVersion","match","showExtended","versionExtendedRegExp","versionRegExp","shaRegExp","Helper","helper","_await","_equal","equal","_gt","_gte","gte","_isArray","isArray","_slicedToArray","arr","i","Array","_arrayWithHoles","_arr","_n","_d","_e","_s","_i","Symbol","iterator","next","done","push","err","_iterableToArrayLimit","TypeError","_nonIterableRest","currentUser","compute","_ref","isPresent","_isEqual","isEqual","_isFulfilled","isFulfilled","_isPending","isPending","_isRejected","isRejected","_lt","lt","_lte","lte","_notEqual","notEq","_not","not","Line truncated
@@ -0,0 +1,2 @@
"use strict";define("kredits-web/app",["exports","ember","kredits-web/resolver","ember-load-initializers","kredits-web/config/environment"],function(e,t,n,r,l){var s=void 0;t.default.MODEL_FACTORY_INJECTIONS=!0,s=t.default.Application.extend({modulePrefix:l.default.modulePrefix,podModulePrefix:l.default.podModulePrefix,Resolver:n.default}),(0,r.default)(s,l.default.modulePrefix),e.default=s}),define("kredits-web/components/add-contributor/component",["exports","ember"],function(e,t){e.default=t.default.Component.extend({id:null,realName:null,address:null,ipfsHash:null,isCore:!1,inProgress:!1,isValidId:function(){return t.default.isPresent(this.get("id"))}.property("id"),isValidRealName:function(){return t.default.isPresent(this.get("realName"))}.property("realName"),isValidAddress:function(){return this.get("kredits.web3Instance").isAddress(this.get("address"))}.property("address"),isValid:function(){return this.get("isValidId")&&this.get("isValidRealName")&&this.get("isValidAddress")}.property("isValidAddress","isValidId","isValidRealName"),reset:function(){this.setProperties({id:null,realName:null,address:null,ipfsHash:null,isCore:!0,inProgress:!1})},actions:{save:function(){var e=this;return this.get("contractInteractionEnabled")?void(this.get("isValid")?(this.set("inProgress",!0),this.get("kredits").addContributor(this.get("address"),this.get("realName"),this.get("isCore"),this.get("id")).then(function(t){e.reset(),e.get("contributors").pushObject(t),window.scroll(0,0)})):alert("Invalid data. Please review and try again.")):void alert("Only core team members can add new contributors. Please ask someone to set you up.")}}})}),define("kredits-web/components/add-contributor/template",["exports"],function(e){e.default=Ember.HTMLBars.template({id:"/x85W8NK",block:'{"statements":[["open-element","form",[]],["modifier",["action"],[["get",[null]],"save"],[["on"],["submit"]]],["flush-element"],["text","\\n "],["open-element","p",[]],["flush-element"],["text","\\n "],["append",["helper",["input"],null,[["type","name","id","checked"],["checkbox","is-core","is-core",["get",["isCore"]]]]],false],["text","\\n "],["open-element","label",[]],["static-attr","for","is-core"],["static-attr","class","checkbox"],["flush-element"],["text","\\n Core team member (can add contributors)\\n "],["close-element"],["text","\\n "],["close-element"],["text","\\n "],["open-element","p",[]],["flush-element"],["text","\\n "],["append",["helper",["input"],null,[["name","type","placeholder","value","class"],["id","text","GitHub UID (123)",["get",["id"]],["helper",["if"],[["get",["isValidId"]],"valid",""],null]]]],false],["text","\\n "],["close-element"],["text","\\n "],["open-element","p",[]],["flush-element"],["text","\\n "],["append",["helper",["input"],null,[["name","type","placeholder","value","class"],["realname","text","GitHub username",["get",["realName"]],["helper",["if"],[["get",["isValidRealName"]],"valid",""],null]]]],false],["text","\\n "],["close-element"],["text","\\n "],["open-element","p",[]],["flush-element"],["text","\\n "],["append",["helper",["input"],null,[["name","type","placeholder","value","class"],["address","text","0xF18E631Ea191aE4ebE70046Fcb01a436554421BA4",["get",["address"]],["helper",["if"],[["get",["isValidAddress"]],"valid",""],null]]]],false],["text","\\n "],["close-element"],["text","\\n "],["open-element","p",[]],["static-attr","class","actions"],["flush-element"],["text","\\n "],["append",["helper",["input"],null,[["type","value","disabled"],["submit",["helper",["if"],[["get",["inProgress"]],"Processing","Save"],null],["get",["inProgress"]]]]],false],["text","\\n "],["close-element"],["text","\\n"],["close-element"],["text","\\n"]],"locals":[],"named":[],"yields":[],"blocks":[],"hasPartials":false}',meta:{moduleName:"kredits-web/components/add-contributor/template.hbs"}})}),define("kredits-web/components/add-proposal/component",["exports","ember"],function(e,t){var n=t.default.Component,r=t.default.inject.service,l=t.default.computed;e.default=n.extend({kredits:r(),proposal:null,inProgress:!1,isValidRecipient:l("proposal.recipientAddress",function(){return this.get("kredits.web3Instance").isAddress(this.get("proposal.recipientAddress"))}),isValidAmount:l("proposal.amount",function(){return!0}),isValidUrl:l("proposal.url",function(){return!0}),isValidIpfsHash:l("proposal.ipfsHash",function(){return!0}),isValid:l.and("isValidRecipient","isValidAmount","isValidUrl","isValidIpfsHash"),actions:{save:function(){var e=this;this.get("isValid")?(this.set("inProgress",!0),this.get("kredits").addProposal(this.get("proposal")).then(function(){e.attrs.onSave()}).catch(function(e){t.default.Logger.error("Error creating the proposal",e),alert("Something went wrong.")}).finally(function(){e.set("inProgress",!1)})):alert("Invalid data. Please review and try again.")}}})}),define("kredits-web/components/add-proposal/template",["exports"],function(e){e.default=Ember.HTMLBars.template({Line truncated
var a=l.default.create({address:e,github_username:n,github_uid:s,kredits:0,isCore:r,isCurrentUser:this.get("currentUserAccounts").includes(e)});return new t.default.RSVP.Promise(function(l,i){o.get("ipfs").storeFile(a.serialize()).then(function(d){a.set("ipfsHash",d),t.default.Logger.debug("ADD",e,n,d,r,s),o.get("kreditsContract").addContributor(e,n,d,r,s,function(e,n){return e?void i(e):(t.default.Logger.debug("[kredits] add contributor response",n),void l(a))})})})},addProposal:function(e){var n=this;return new t.default.RSVP.Promise(function(r,l){var s=e.getProperties("recipientAddress","amount","url","ipfsHash"),o=s.recipientAddress,a=s.amount,i=s.url,d=s.ipfsHash;n.get("kreditsContract").addProposal(o,a,i,d,function(e,n){return e?void l(e):(t.default.Logger.debug("[kredits] add proposal response",n),void r())})})},logKreditsContract:function(){t.default.Logger.debug("[kredits] kreditsContract",this.get("kreditsContract"))}.on("init")})}),define("kredits-web/services/qp",["exports","ember-parachute/services/qp"],function(e,t){Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("kredits-web/templates/application",["exports"],function(e){e.default=Ember.HTMLBars.template({id:"bs9LAwOM",block:'{"statements":[["open-element","main",[]],["flush-element"],["text","\\n "],["append",["unknown",["outlet"]],false],["text","\\n"],["close-element"],["text","\\n"]],"locals":[],"named":[],"yields":[],"blocks":[],"hasPartials":false}',meta:{moduleName:"kredits-web/templates/application.hbs"}})}),define("kredits-web/templates/index",["exports"],function(e){e.default=Ember.HTMLBars.template({id:"wvDNcFuV",block:'{"statements":[["open-element","section",[]],["static-attr","id","contributors"],["flush-element"],["text","\\n "],["open-element","header",[]],["flush-element"],["text","\\n "],["open-element","h2",[]],["flush-element"],["text","Kosmos Contributors"],["close-element"],["text","\\n "],["close-element"],["text","\\n\\n "],["open-element","div",[]],["static-attr","class","content"],["flush-element"],["text","\\n "],["append",["helper",["contributor-list"],null,[["contributors"],[["get",["contributorsSorted"]]]]],false],["text","\\n\\n "],["open-element","p",[]],["static-attr","class","stats"],["flush-element"],["text","\\n "],["open-element","span",[]],["static-attr","class","number"],["flush-element"],["append",["unknown",["model","totalSupply"]],false],["close-element"],["text"," kredits issued and distributed among\\n "],["open-element","span",[]],["static-attr","class","number"],["flush-element"],["append",["unknown",["contributorsWithKredits","length"]],false],["close-element"],["text"," contributors.\\n "],["close-element"],["text","\\n "],["close-element"],["text","\\n"],["close-element"],["text","\\n\\n"],["block",["if"],[["get",["proposalsOpen"]]],null,4],["text","\\n"],["open-element","section",[]],["static-attr","id","proposals-closed"],["flush-element"],["text","\\n "],["open-element","header",[]],["flush-element"],["text","\\n "],["open-element","h2",[]],["flush-element"],["text","Closed Proposals"],["close-element"],["text","\\n "],["close-element"],["text","\\n "],["open-element","div",[]],["static-attr","class","content"],["flush-element"],["text","\\n "],["append",["helper",["proposal-list"],null,[["proposals","confirmAction"],[["get",["proposalsClosedSorted"]],"confirmProposal"]]],false],["text","\\n\\n"],["block",["if"],[["get",["contractInteractionEnabled"]]],null,1],["text"," "],["close-element"],["text","\\n"],["close-element"],["text","\\n\\n"],["open-element","section",[]],["static-attr","id","add-contributor"],["flush-element"],["text","\\n "],["open-element","header",[]],["flush-element"],["text","\\n "],["open-element","h2",[]],["flush-element"],["text","Add Contributor"],["close-element"],["text","\\n "],["close-element"],["text","\\n\\n "],["open-element","div",[]],["static-attr","class","content"],["flush-element"],["text","\\n "],["append",["helper",["add-contributor"],null,[["kredits","contributors","contractInteractionEnabled"],[["get",["kredits"]],["get",["model","contributors"]],["get",["contractInteractionEnabled"]]]]],false],["text","\\n "],["close-element"],["text","\\n"],["close-element"],["text","\\n"]],"locals":[],"named":[],"yields":[],"blocks":[{"statements":[["text","Create new proposal"]],"locals":[]},{"statements":[["text"," "],["open-element","p",[]],["static-attr","class","actions"],["flush-element"],["text","\\n "],["block",["link-to"],["proposals.new"],null,0],["text","\\n "],["close-element"],["text","\\n"]],"locals":[]},{"statements":[["text","Create new proposal"]],"locals":[]},{"statements":[["text"," "],["open-element","p",[]],["static-attr","class","actions"],["flush-element"],["text","\\n "],["block",["link-to"],["proposals.new"],null,2],["text","\\n "],["close-element"],["text","\\n"]],"locals":[]},{"statements":[["text"," "],["oLine truncated
@@ -0,0 +1,2 @@
"use strict";define("kredits-web/app",["exports","ember","kredits-web/resolver","ember-load-initializers","kredits-web/config/environment"],function(e,t,n,r,l){var o=void 0;t.default.MODEL_FACTORY_INJECTIONS=!0,o=t.default.Application.extend({modulePrefix:l.default.modulePrefix,podModulePrefix:l.default.podModulePrefix,Resolver:n.default}),(0,r.default)(o,l.default.modulePrefix),e.default=o}),define("kredits-web/components/add-contributor/component",["exports","ember","kredits-web/models/contributor"],function(e,t,n){var r=t.default.Component,l=t.default.isPresent,o=t.default.inject.service,s=t.default.computed;e.default=r.extend({kredits:o(),newContributor:null,inProgress:!1,isValidAddress:function(){return this.get("kredits.web3").isAddress(this.get("newContributor.address"))}.property("kredits.web3","newContributor.address"),isValidName:function(){return l(this.get("newContributor.name"))}.property("newContributor.name"),isValidURL:function(){return l(this.get("newContributor.url"))}.property("newContributor.url"),isValidGithubUID:function(){return l(this.get("newContributor.github_uid"))}.property("newContributor.github_uid"),isValidGithubUsername:function(){return l(this.get("newContributor.github_username"))}.property("newContributor.github_username"),isValidWikiUsername:function(){return l(this.get("newContributor.wiki_username"))}.property("newContributor.wiki_username"),isValid:s.and("isValidAddress","isValidName","isValidGithubUID"),reset:function(){this.setProperties({newContributor:n.default.create({kind:"person"}),inProgress:!1})},actions:{save:function(){var e=this;return this.get("contractInteractionEnabled")?void(this.get("isValid")?(this.set("inProgress",!0),this.get("kredits").addContributor(this.get("newContributor")).then(function(t){e.reset(),e.get("contributors").pushObject(t),window.scroll(0,0)})):alert("Invalid data. Please review and try again.")):void alert("Only core team members can add new contributors. Please ask someone to set you up.")}}})}),define("kredits-web/components/add-contributor/template",["exports"],function(e){e.default=Ember.HTMLBars.template({id:"WQk0xZ2e",block:'{"statements":[["open-element","form",[]],["modifier",["action"],[["get",[null]],"save"],[["on"],["submit"]]],["flush-element"],["text","\\n "],["open-element","p",[]],["flush-element"],["text","\\n "],["append",["helper",["input"],null,[["type","name","id","checked"],["checkbox","is-core","is-core",["get",["newContributor","isCore"]]]]],false],["text","\\n "],["open-element","label",[]],["static-attr","for","is-core"],["static-attr","class","checkbox"],["flush-element"],["text","\\n Core team member (can add contributors)\\n "],["close-element"],["text","\\n "],["close-element"],["text","\\n "],["open-element","p",[]],["flush-element"],["text","\\n "],["append",["helper",["input"],null,[["name","type","placeholder","value","class"],["address","text","0xF18E631Ea191aE4ebE70046Fcb01a436554421BA4",["get",["newContributor","address"]],["helper",["if"],[["get",["isValidAddress"]],"valid",""],null]]]],false],["text","\\n "],["close-element"],["text","\\n "],["open-element","p",[]],["flush-element"],["text","\\n "],["open-element","select",[]],["static-attr","required",""],["dynamic-attr","onchange",["helper",["action"],[["get",[null]],["helper",["mut"],[["get",["newContributor","kind"]]],null]],[["value"],["target.value"]]],null],["flush-element"],["text","\\n "],["open-element","option",[]],["static-attr","value","person"],["dynamic-attr","selected",["helper",["eq"],[["get",["newContributor","kind"]],"person"],null],null],["flush-element"],["text","Person"],["close-element"],["text","\\n "],["open-element","option",[]],["static-attr","value","organization"],["dynamic-attr","selected",["helper",["eq"],[["get",["newContributor","kind"]],"organization"],null],null],["flush-element"],["text","Organization"],["close-element"],["text","\\n "],["close-element"],["text","\\n "],["close-element"],["text","\\n "],["open-element","p",[]],["flush-element"],["text","\\n "],["append",["helper",["input"],null,[["name","type","placeholder","value","class"],["name","text","Name",["get",["newContributor","name"]],["helper",["if"],[["get",["isValidName"]],"valid",""],null]]]],false],["text","\\n "],["close-element"],["text","\\n "],["open-element","p",[]],["flush-element"],["text","\\n "],["append",["helper",["input"],null,[["name","type","placeholder","value","class"],["url","text","URL",["get",["newContributor","url"]],["helper",["if"],[["get",["isValidURL"]],"valid",""],null]]]],false],["text","\\n "],["close-element"],["text","\\n "],["open-element","p",[]],["flush-element"],["text","\\n "],["append",["helper",["input"],null,[["name","type","placeholder","value","class"],["github_uid","text","GitHub UID (123)",["get",["newContributor","github_uid"]],["helper",["if"],[["get",["isValidGithubUID"]],"valid",""],null]]]],false],["text","\\n "],["close-element"],["text","\\nLine truncated
if(r(this.get("kind"))||r(this.get("description")))throw new Error("Missing one or more required properties: kind, description");var e={"@context":"https://schema.kosmos.org","@type":"Contribution",contributor:{ipfs:this.get("recipientProfile")},kind:this.get("kind"),description:this.get("description"),details:{}};return n(this.get("url"))&&(e.url=this.get("url")),e},serializeContribution:function(){return JSON.stringify(this.contributionToJSON())}})}),define("kredits-web/resolver",["exports","ember-resolver"],function(e,t){e.default=t.default}),define("kredits-web/router",["exports","ember","kredits-web/config/environment"],function(e,t,n){var r=t.default.Router.extend({location:n.default.locationType,rootURL:n.default.rootURL});r.map(function(){this.route("spinner"),this.route("proposals",function(){this.route("new")})}),e.default=r}),define("kredits-web/routes/application",["exports","ember"],function(e,t){e.default=t.default.Route.extend({})}),define("kredits-web/routes/index",["exports","ember","kredits-web/models/contributor"],function(e,t,n){e.default=t.default.Route.extend({kredits:t.default.inject.service(),beforeModel:function(e){var t=this.get("kredits");t.get("web3")&&t.get("web3Provided")&&t.get("web3").eth.getAccounts(function(t,n){(t||0===n.length)&&confirm("It looks like you have an Ethereum wallet available. Please unlock your account.")&&e.retry()})},model:function(){var e=this.get("kredits");return t.default.RSVP.hash({contributors:e.getContributors(),totalSupply:e.getValueFromContract("tokenContract","totalSupply"),proposals:e.getProposals(),newContributor:n.default.create({kind:"person"})})}})}),define("kredits-web/routes/proposals/new",["exports","ember","kredits-web/models/proposal"],function(e,t,n){var r=t.default.Route,l=t.default.RSVP,o=t.default.inject.service;e.default=r.extend({kredits:o(),model:function(e){var t=n.default.create({recipientAddress:e.recipient,amount:e.amount,url:e.url,kind:e.kind||"dev",ipfsHash:e.ipfsHash});return l.hash({proposal:t,contributors:this.get("kredits").getContributors()})},setupController:function(e,t){this._super(e,t.proposal),e.set("contributors",t.contributors)}})}),define("kredits-web/routes/spinner",["exports","ember"],function(e,t){e.default=t.default.Route.extend({})}),define("kredits-web/services/ajax",["exports","ember-ajax/services/ajax"],function(e,t){Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("kredits-web/services/ipfs",["exports","ember","npm:ipfs-api","kredits-web/config/environment"],function(e,t,n,r){e.default=t.default.Service.extend({ipfsInstance:null,ipfs:function(){if(this.get("ipfsInstance"))return this.get("ipfsInstance");var e=(0,n.default)(r.default.ipfs);return this.set("ipfsInstance",e),e}.property("ipfsInstance"),storeFile:function(e){var n=this.get("ipfs");return n.add(new n.Buffer(e)).then(function(n){return t.default.Logger.debug("[ipfs] stored content in IPFS",e,n[0].hash),n[0].hash})},getFile:function(e){return this.get("ipfs").cat(e,{buffer:!0}).then(function(e){return e.toString()},function(n){throw t.default.Logger.error("[ipfs] error trying to fetch file",e,n),n})}})}),define("kredits-web/services/kredits",["exports","ember","npm:web3","kredits-web/config/environment","kredits-web/models/contributor","kredits-web/models/proposal","npm:kredits-contracts","npm:uuid"],function(e,t,n,r,l,o,s,a){var i=t.default.Service,u=t.default.isPresent,d=t.default.inject.service;e.default=i.extend({ipfs:d(),web3Instance:null,web3Provided:!1,web3:function(){if(this.get("web3Instance"))return this.get("web3Instance");var e=void 0;if("undefined"!=typeof window.web3)t.default.Logger.debug("[kredits] Using user-provided instance, e.g. from Mist browser or Metamask"),e=window.web3,this.set("web3Provided",!0);else{t.default.Logger.debug("[kredits] Creating new instance from npm module class");var l=localStorage.getItem("config:web3ProviderUrl")||r.default.web3ProviderUrl,o=new n.default.providers.HttpProvider(l);e=new n.default(o)}return this.set("web3Instance",e),window.web3=e,e}.property("web3Instance"),currentUserAccounts:function(){return this.get("web3Provided")&&this.get("web3").eth.accounts||[]}.property("web3Provided","web3"),initializeKreditsContract:function(){var e=null;return u(r.default.contractMetadata)?(localStorage.getItem("config:networkId")&&(r.default.contractMetadata.networkId=localStorage.getItem("config:networkId")),e=(0,s.default)(this.get("web3"),r.default.contractMetadata).Kredits):e=(0,s.default)(this.get("web3")).Kredits,e},kreditsContract:function(){if(this.get("kreditsContractInstance"))return this.get("kreditsContractInstance");var e=this.initializeKreditsContract();return this.set("kreditsContractInstance",e),e}.property("kreditsContractInstance","web3"),tokenContract:function(){if(this.get("tokenContractInstance"))return this.get("tokenContractInstance");var e=(0,s.default)(this.get("web3"),r.default.contractMetadata).Token;return this.set("tokenContractILine truncated
@@ -0,0 +1 @@
{"version":3,"sources":["vendor/ember-cli/app-prefix.js","kredits-web/app.js","kredits-web/components/add-contributor/component.js","kredits-web/components/add-contributor/template.js","kredits-web/components/add-proposal/component.js","kredits-web/components/add-proposal/template.js","kredits-web/components/chart-contributions-by-type/component.js","kredits-web/components/chart-contributions-by-type/template.js","kredits-web/components/contributor-list/component.js","kredits-web/components/contributor-list/template.js","kredits-web/components/ember-chart.js","kredits-web/components/loading-spinner/component.js","kredits-web/components/loading-spinner/template.js","kredits-web/components/proposal-list/component.js","kredits-web/components/proposal-list/template.js","kredits-web/controllers/application.js","kredits-web/controllers/index.js","kredits-web/controllers/proposals/new.js","kredits-web/helpers/and.js","kredits-web/helpers/app-version.js","kredits-web/helpers/await.js","kredits-web/helpers/eq.js","kredits-web/helpers/gt.js","kredits-web/helpers/gte.js","kredits-web/helpers/is-array.js","kredits-web/helpers/is-equal.js","kredits-web/helpers/is-fulfilled.js","kredits-web/helpers/is-pending.js","kredits-web/helpers/is-rejected.js","kredits-web/helpers/lt.js","kredits-web/helpers/lte.js","kredits-web/helpers/not-eq.js","kredits-web/helpers/not.js","kredits-web/helpers/or.js","kredits-web/helpers/promise-all.js","kredits-web/helpers/promise-hash.js","kredits-web/helpers/promise-rejected-reason.js","kredits-web/helpers/xor.js","kredits-web/initializers/app-version.js","kredits-web/initializers/container-debug-adapter.js","kredits-web/initializers/export-application-global.js","kredits-web/models/contributor.js","kredits-web/models/proposal.js","kredits-web/resolver.js","kredits-web/router.js","kredits-web/routes/application.js","kredits-web/services/ajax.js","kredits-web/services/kredits.js","kredits-web/templates/application-loading.js","kredits-web/templates/application.js","kredits-web/templates/index.js","kredits-web/templates/proposals/new.js","kredits-web/utils/cps/bignumber.js","vendor/ember-cli/app-config.js","vendor/ember-cli/app-boot.js"],"names":["define","exports","_resolver","_emberLoadInitializers","_environment","Object","defineProperty","value","App","Ember","Application","extend","modulePrefix","default","podModulePrefix","Resolver","Component","kredits","inject","service","attributes","account","name","kind","url","github_username","github_uid","wiki_username","isCore","didInsertElement","this","_super","apply","arguments","reset","isValidAccount","computed","notEmpty","isValidName","isValidURL","isValidGithubUID","isValidGithubUsername","isValidWikiUsername","isValid","and","setProperties","actions","submit","_this","keys","contributor","getProperties","saved","save","set","then","window","scroll","alert","HTMLBars","template","id","block","meta","moduleName","contributorId","amount","description","contributors","isValidContributor","isValidAmount","parseInt","isValidDescription","isValidUrl","proposal","categoryColors","contributions","chartData","get","map","c","reduce","kinds","datasets","data","borderColor","borderWidth","labels","chartOptions","legend","display","tagName","classNames","selectedContributor","toggleContributorInfo","setEach","_emberChart","confirm","proposalId","contractInteractionEnabled","confirmProposal","Controller","alias","contributorsWithKredits","filter","contributorsSorting","contributorsSorted","sort","proposals","proposalsOpen","filterBy","proposalsClosed","proposalsSorting","proposalsClosedSorted","proposalsOpenSorted","vote","transaction","hash","addContributor","pushObject","minedContributors","findBy","contributorIpfsHash","addProposal","transitionToRoute","_and","enumerable","_regexp","appVersion","version","APP","_","length","undefined","hideSha","match","versionRegExp","hideVersion","shaRegExp","Helper","helper","_await","_equal","equal","_gt","gt","_gte","gte","_isArray","isArray","_isEqual","isEqual","_isFulfilled","isFulfilled","_isPending","isPending","_isRejected","isRejected","_lt","lt","_lte","lte","_notEqual","notEq","_not","not","_or","or","_promiseAll","promiseAll","_promiseHash","promiseHash","_promiseRejectedReason","_xor","xor","_initializerFactory","initialize","_containerDebugAdapter","app","register","application","exportApplicationGlobal","theGlobal","global","self","globalName","String","classify","reopen","willDestroy","_bignumber","balance","ipfsHash","ipfsData","isCurrentUser","avatarURL","creatorAccount","votesCount","votesNeeded","executed","isExecuted","details","_emberResolver","Router","location","locationType","rootURL","route","Route","beforeModel","transition","setup","retry","catch","error","console","log","afterModel","loadContributorsAndProposals","addContractEventHandlers","_ajax","_npmEthers","_npmKreditsContracts","_contributor","_proposal","Service","currentUserAccounts","currentUser","currentUserIsContributor","Line truncated
@@ -0,0 +1 @@
{"version":3,"sources":["vendor/ember-cli/app-prefix.js","kredits-web/app.js","kredits-web/components/add-contributor/component.js","kredits-web/components/add-contributor/template.js","kredits-web/components/add-proposal/component.js","kredits-web/components/add-proposal/template.js","kredits-web/components/contributor-list/component.js","kredits-web/components/contributor-list/template.js","kredits-web/components/loading-spinner/component.js","kredits-web/components/loading-spinner/template.js","kredits-web/components/proposal-list/component.js","kredits-web/components/proposal-list/template.js","kredits-web/controllers/application.js","kredits-web/controllers/index.js","kredits-web/controllers/proposals/new.js","kredits-web/helpers/and.js","kredits-web/helpers/app-version.js","kredits-web/helpers/await.js","kredits-web/helpers/eq.js","kredits-web/helpers/gt.js","kredits-web/helpers/gte.js","kredits-web/helpers/is-array.js","kredits-web/helpers/is-equal.js","kredits-web/helpers/is-fulfilled.js","kredits-web/helpers/is-pending.js","kredits-web/helpers/is-rejected.js","kredits-web/helpers/lt.js","kredits-web/helpers/lte.js","kredits-web/helpers/not-eq.js","kredits-web/helpers/not.js","kredits-web/helpers/or.js","kredits-web/helpers/promise-all.js","kredits-web/helpers/promise-hash.js","kredits-web/helpers/promise-rejected-reason.js","kredits-web/helpers/xor.js","kredits-web/initializers/app-version.js","kredits-web/initializers/container-debug-adapter.js","kredits-web/initializers/export-application-global.js","kredits-web/models/contributor.js","kredits-web/models/proposal.js","kredits-web/resolver.js","kredits-web/router.js","kredits-web/routes/application.js","kredits-web/services/ajax.js","kredits-web/services/kredits.js","kredits-web/templates/application-loading.js","kredits-web/templates/application.js","kredits-web/templates/index.js","kredits-web/templates/proposals/new.js","kredits-web/utils/cps/bignumber.js","vendor/ember-cli/app-config.js","vendor/ember-cli/app-boot.js"],"names":["define","exports","_resolver","_emberLoadInitializers","_environment","Object","defineProperty","value","App","Ember","Application","extend","modulePrefix","default","podModulePrefix","Resolver","Component","kredits","inject","service","attributes","account","name","kind","url","github_username","github_uid","wiki_username","isCore","didInsertElement","this","_super","apply","arguments","reset","isValidAccount","computed","notEmpty","isValidName","isValidURL","isValidGithubUID","isValidGithubUsername","isValidWikiUsername","isValid","and","setProperties","actions","submit","_this","keys","contributor","getProperties","saved","save","set","then","window","scroll","alert","HTMLBars","template","id","block","meta","moduleName","contributorId","amount","description","contributors","isValidContributor","isValidAmount","parseInt","isValidDescription","isValidUrl","proposal","tagName","classNames","selectedContributor","toggleContributorInfo","get","setEach","confirm","proposalId","contractInteractionEnabled","confirmProposal","Controller","alias","contributorsWithKredits","filter","contributorsSorting","contributorsSorted","sort","proposals","proposalsOpen","filterBy","proposalsClosed","proposalsSorting","proposalsClosedSorted","proposalsOpenSorted","vote","transaction","hash","addContributor","pushObject","minedContributors","findBy","contributorIpfsHash","addProposal","transitionToRoute","_and","enumerable","_regexp","appVersion","version","APP","_","length","undefined","hideSha","match","versionRegExp","hideVersion","shaRegExp","Helper","helper","_await","_equal","equal","_gt","gt","_gte","gte","_isArray","isArray","_isEqual","isEqual","_isFulfilled","isFulfilled","_isPending","isPending","_isRejected","isRejected","_lt","lt","_lte","lte","_notEqual","notEq","_not","not","_or","or","_promiseAll","promiseAll","_promiseHash","promiseHash","_promiseRejectedReason","_xor","xor","_initializerFactory","initialize","_containerDebugAdapter","app","register","application","exportApplicationGlobal","theGlobal","global","self","globalName","String","classify","reopen","willDestroy","_bignumber","balance","ipfsHash","ipfsData","isCurrentUser","avatarURL","creatorAccount","votesCount","votesNeeded","executed","isExecuted","details","_emberResolver","Router","location","locationType","rootURL","map","route","Route","beforeModel","transition","setup","retry","catch","error","console","log","afterModel","loadContributorsAndProposals","addContractEventHandlers","_ajax","_npmEthers","_npmKreditsContracts","_contributor","_proposal","Service","currentUserAccounts","currentUser","currentUserIsContributor","currentUserIsCore","hasAccounts","accountNeedsUnlock","isEmpty","getEthProvider","RSVP","Promise","resolve","ethProvider","networkId","web3","debug","network","providers","Web3Provider","currentProvider","chainId","listAccounts","accounts","ethSigner","getSigner","contractMetadata","web3ProviderUrl","JsonRpcProvider","_this2","providerAndLine truncated
@@ -0,0 +1,141 @@
"use strict"
define("kredits-web/app",["exports","kredits-web/resolver","ember-load-initializers","kredits-web/config/environment"],function(e,t,n,r){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
var i=Ember.Application.extend({modulePrefix:r.default.modulePrefix,podModulePrefix:r.default.podModulePrefix,Resolver:t.default});(0,n.default)(i,r.default.modulePrefix)
var o=i
e.default=o}),define("kredits-web/components/add-contributor/component",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
var t=Ember.Component.extend({kredits:Ember.inject.service(),attributes:null,isValidAccount:Ember.computed.notEmpty("account"),isValidName:Ember.computed.notEmpty("name"),isValidURL:Ember.computed.notEmpty("url"),isValidGithubUID:Ember.computed.notEmpty("github_uid"),isValidGithubUsername:Ember.computed.notEmpty("github_username"),isValidWikiUsername:Ember.computed.notEmpty("wiki_username"),isValid:Ember.computed.and("isValidAccount","isValidName","isValidGithubUID"),init:function(){this._super.apply(this,arguments),this.set("attributes",{account:null,name:null,kind:"person",url:null,github_username:null,github_uid:null,wiki_username:null,isCore:!1})},didInsertElement:function(){this._super.apply(this,arguments),this.reset()},reset:function(){this.setProperties(this.attributes)},actions:{submit:function(){var e=this
if(this.isValid){var t=Object.keys(this.attributes),n=this.getProperties(t),r=this.save(n)
this.set("inProgress",r),r.then(function(){e.reset(),window.scroll(0,0),window.alert("Contributor added.")})}else alert("Invalid data. Please review and try again.")}}})
e.default=t}),define("kredits-web/components/add-contributor/template",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
var t=Ember.HTMLBars.template({id:"NNAD5dbK",block:'{"symbols":[],"statements":[[7,"form"],[9],[0,"\\n "],[7,"p"],[9],[0,"\\n "],[1,[27,"input",null,[["name","type","id","checked"],["is-core","checkbox","is-core",[23,["isCore"]]]]],false],[0,"\\n "],[7,"label"],[11,"for","is-core"],[11,"class","checkbox"],[9],[0,"\\n Core team member (can add contributors)\\n "],[10],[0,"\\n "],[10],[0,"\\n "],[7,"p"],[9],[0,"\\n "],[1,[27,"input",null,[["name","type","placeholder","value","class"],["account","text","0xF18E631Ea191aE4ebE70046Fcb01a436554421BA4",[23,["account"]],[27,"if",[[23,["isValidAccount"]],"valid",""],null]]]],false],[0,"\\n "],[10],[0,"\\n "],[7,"p"],[9],[0,"\\n "],[7,"select"],[11,"required",""],[12,"onchange",[27,"action",[[22,0,[]],[27,"mut",[[23,["kind"]]],null]],[["value"],["target.value"]]]],[9],[0,"\\n "],[7,"option"],[11,"value","person"],[12,"selected",[27,"eq",[[23,["kind"]],"person"],null]],[9],[0,"Person"],[10],[0,"\\n "],[7,"option"],[11,"value","organization"],[12,"selected",[27,"eq",[[23,["kind"]],"organization"],null]],[9],[0,"Organization"],[10],[0,"\\n "],[10],[0,"\\n "],[10],[0,"\\n "],[7,"p"],[9],[0,"\\n "],[1,[27,"input",null,[["name","type","placeholder","value","class"],["name","text","Name",[23,["name"]],[27,"if",[[23,["isValidName"]],"valid",""],null]]]],false],[0,"\\n "],[10],[0,"\\n "],[7,"p"],[9],[0,"\\n "],[1,[27,"input",null,[["name","type","placeholder","value","class"],["url","text","URL",[23,["url"]],[27,"if",[[23,["isValidURL"]],"valid",""],null]]]],false],[0,"\\n "],[10],[0,"\\n "],[7,"p"],[9],[0,"\\n "],[1,[27,"input",null,[["name","type","placeholder","value","class"],["github_uid","text","GitHub UID (123)",[23,["github_uid"]],[27,"if",[[23,["isValidGithubUID"]],"valid",""],null]]]],false],[0,"\\n "],[10],[0,"\\n "],[7,"p"],[9],[0,"\\n "],[1,[27,"input",null,[["name","type","placeholder","value","class"],["github_username","text","GitHub username",[23,["github_username"]],[27,"if",[[23,["isValidGithubUsername"]],"valid",""],null]]]],false],[0,"\\n "],[10],[0,"\\n "],[7,"p"],[9],[0,"\\n "],[1,[27,"input",null,[["name","type","placeholder","value","class"],["wiki_username","text","Wiki Username",[23,["wiki_username"]],[27,"if",[[23,["isValidWikiUsername"]],"valid",""],null]]]],false],[0,"\\n "],[10],[0,"\\n "],[7,"p"],[11,"class","actions"],[9],[0,"\\n "],[1,[27,"input",null,[["type","disabled","value"],["submit",[27,"is-pending",[[23,["inProgress"]]],null],[27,"if",[[27,"is-pending",[[23,["inProgress"]]],null],"Processing","Save"],null]]]],false],[0,"\\n "],[10],[0,"\\n"],[3,"action",[[22,0,[]],"submit"],[["on"],["submit"]]],[10],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"kredits-web/components/add-contributor/template.hbs"}})
e.default=t}),define("kredits-web/components/add-proposal/component",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
var t=Ember.Component.extend({attributes:null,contributors:Object.freeze([]),isValidContributor:Ember.computed.notEmpty("contributorId"),isValidAmount:Ember.computed("amount",function(){return parseInt(this.amount,10)>0}),isValidDescription:Ember.computed.notEmpty("description"),isValidUrl:Ember.computed.notEmpty("url"),isValid:Ember.computed.and("isValidContributor","isValidAmount","isValidDescription"),init:function(){this._super.apply(this,arguments),this.set("attributes",{contributorId:null,kind:"community",amount:null,description:null,url:null})},didInsertElement:function(){this._super.apply(this,arguments),this.reset()},reset:function(){this.setProperties(this.attributes)},actions:{submit:function(){var e=this
if(this.isValid){var t=Object.keys(this.attributes),n=this.getProperties(t),r=this.save(n)
this.set("inProgress",r),r.then(function(){e.reset(),window.scroll(0,0),window.alert("Proposal added.")})}else alert("Invalid data. Please review and try again.")}}})
e.default=t}),define("kredits-web/components/add-proposal/template",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
var t=Ember.HTMLBars.template({id:"3DOgBCvD",block:'{"symbols":["contributor"],"statements":[[7,"form"],[9],[0,"\\n "],[7,"p"],[9],[0,"\\n "],[7,"select"],[11,"required",""],[12,"onchange",[27,"action",[[22,0,[]],[27,"mut",[[23,["contributorId"]]],null]],[["value"],["target.value"]]]],[9],[0,"\\n "],[7,"option"],[11,"value",""],[11,"selected",""],[11,"disabled",""],[11,"hidden",""],[9],[0,"Contributor"],[10],[0,"\\n"],[4,"each",[[23,["contributors"]]],null,{"statements":[[0," "],[7,"option"],[12,"value",[22,1,["id"]]],[12,"selected",[27,"eq",[[23,["contributorId"]],[22,1,["id"]]],null]],[9],[1,[22,1,["github_username"]],false],[10],[0,"\\n"]],"parameters":[1]},null],[0," "],[10],[0,"\\n "],[10],[0,"\\n "],[7,"p"],[9],[0,"\\n "],[7,"select"],[11,"required",""],[12,"onchange",[27,"action",[[22,0,[]],[27,"mut",[[23,["kind"]]],null]],[["value"],["target.value"]]]],[9],[0,"\\n "],[7,"option"],[11,"value","community"],[12,"selected",[27,"eq",[[23,["kind"]],"community"],null]],[9],[0,"Community"],[10],[0,"\\n "],[7,"option"],[11,"value","design"],[12,"selected",[27,"eq",[[23,["kind"]],"design"],null]],[9],[0,"Design"],[10],[0,"\\n "],[7,"option"],[11,"value","dev"],[12,"selected",[27,"eq",[[23,["kind"]],"dev"],null]],[9],[0,"Development"],[10],[0,"\\n "],[7,"option"],[11,"value","docs"],[12,"selected",[27,"eq",[[23,["kind"]],"docs"],null]],[9],[0,"Documentation"],[10],[0,"\\n "],[7,"option"],[11,"value","ops"],[12,"selected",[27,"eq",[[23,["kind"]],"ops"],null]],[9],[0,"IT Operations"],[10],[0,"\\n "],[10],[0,"\\n "],[10],[0,"\\n "],[7,"p"],[9],[0,"\\n "],[1,[27,"input",null,[["type","placeholder","value","class"],["text","100",[23,["amount"]],[27,"if",[[23,["isValidAmount"]],"valid",""],null]]]],false],[0,"\\n "],[10],[0,"\\n "],[7,"p"],[9],[0,"\\n "],[1,[27,"input",null,[["type","placeholder","value","class"],["text","Description",[23,["description"]],[27,"if",[[23,["isValidDescription"]],"valid",""],null]]]],false],[0,"\\n "],[10],[0,"\\n "],[7,"p"],[9],[0,"\\n "],[1,[27,"input",null,[["type","placeholder","value","class"],["text","URL (optional)",[23,["url"]],[27,"if",[[23,["isValidUrl"]],"valid",""],null]]]],false],[0,"\\n "],[10],[0,"\\n "],[7,"p"],[11,"class","actions"],[9],[0,"\\n "],[1,[27,"input",null,[["type","disabled","value"],["submit",[27,"is-pending",[[23,["inProgress"]]],null],[27,"if",[[27,"is-pending",[[23,["inProgress"]]],null],"Processing","Save"],null]]]],false],[0,"\\n "],[4,"link-to",["index"],null,{"statements":[[0,"Back"]],"parameters":[]},null],[0,"\\n "],[10],[0,"\\n"],[3,"action",[[22,0,[]],"submit"],[["on"],["submit"]]],[10],[0,"\\n\\n"]],"hasEval":false}',meta:{moduleName:"kredits-web/components/add-proposal/template.hbs"}})
e.default=t}),define("kredits-web/components/chart-contributions-by-type/component",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
var t="#fb6868",n="#fbe468",r="#e068fb",i="#97fb68",o="#8f68fb",s=Ember.Component.extend({contributions:null,chartOptions:Object.freeze({legend:{display:!1}}),chartData:Ember.computed("contributions",function(){var e=this.contributions.map(function(e){return{kind:e.kind,amount:e.amount}}).reduce(function(e,t){return t.kind in e?e[t.kind]=e[t.kind]+t.amount:e[t.kind]=t.amount,e},{})
return{datasets:[{data:[e.community,e.design,e.dev,e.ops,e.docs],borderColor:[t,n,r,o,i],borderWidth:1}],labels:["Community","Design","Development","Operations & Infrastructure","Documentation"]}})})
e.default=s}),define("kredits-web/components/chart-contributions-by-type/template",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
var t=Ember.HTMLBars.template({id:"knNRD8x3",block:'{"symbols":[],"statements":[[7,"div"],[11,"class","chart"],[9],[0,"\\n "],[1,[27,"ember-chart",null,[["type","data","options","width","height"],["doughnut",[23,["chartData"]],[23,["chartOptions"]],200,200]]],false],[0,"\\n"],[10]],"hasEval":false}',meta:{moduleName:"kredits-web/components/chart-contributions-by-type/template.hbs"}})
e.default=t}),define("kredits-web/components/contribution-list/component",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
var t=Ember.Component.extend({tagName:"ul",classNames:["contribution-list"]})
e.default=t}),define("kredits-web/components/contribution-list/template",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
var t=Ember.HTMLBars.template({id:"pCrdk2W6",block:'{"symbols":["contribution"],"statements":[[4,"each",[[23,["contributions"]]],null,{"statements":[[0," "],[7,"li"],[12,"data-contribution-id",[22,1,["id"]]],[12,"class",[27,"if",[[22,1,["confirmed"]],"confirmed","unconfirmed"],null]],[9],[0,"\\n "],[7,"p"],[11,"class","meta"],[9],[0,"\\n "],[7,"span"],[11,"class","recipient"],[9],[1,[27,"user-avatar",null,[["contributor"],[[22,1,["contributor"]]]]],false],[10],[0,"\\n "],[7,"span"],[12,"class",[28,["category ",[22,1,["kind"]]]]],[9],[0,"("],[1,[22,1,["kind"]],false],[0,")"],[10],[0,"\\n "],[7,"span"],[11,"class","title"],[9],[0,"\\n"],[4,"if",[[22,1,["url"]]],null,{"statements":[[0," "],[7,"a"],[12,"href",[22,1,["url"]]],[11,"target","_blank"],[11,"rel","noopener"],[9],[1,[22,1,["description"]],false],[10],[0,"\\n"]],"parameters":[]},{"statements":[[0," "],[1,[22,1,["description"]],false],[0,"\\n"]],"parameters":[]}],[0," "],[10],[0,"\\n "],[10],[0,"\\n "],[7,"p"],[11,"class","kredits-amount"],[9],[0,"\\n "],[7,"span"],[11,"class","amount"],[9],[1,[22,1,["amount"]],false],[10],[7,"span"],[11,"class","symbol"],[9],[0,"₭S"],[10],[0,"\\n "],[10],[0,"\\n "],[10],[0,"\\n"]],"parameters":[1]},null]],"hasEval":false}',meta:{moduleName:"kredits-web/components/contribution-list/template.hbs"}})
e.default=t}),define("kredits-web/components/contributor-list/component",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
var t=Ember.Component.extend({tagName:"table",classNames:"contributor-list",selectedContributor:null,actions:{toggleContributorInfo:function(e){e.get("showMetadata")?e.set("showMetadata",!1):(this.contributors.setEach("showMetadata",!1),e.set("showMetadata",!0))}}})
e.default=t}),define("kredits-web/components/contributor-list/template",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
var t=Ember.HTMLBars.template({id:"0V5ZXtul",block:'{"symbols":["contributor"],"statements":[[7,"tbody"],[9],[0,"\\n"],[4,"each",[[23,["contributors"]]],null,{"statements":[[0," "],[7,"tr"],[11,"role","button"],[12,"class",[27,"if",[[27,"is-current-user",[[22,1,[]]],null],"current-user"],null]],[9],[0,"\\n "],[7,"td"],[11,"class","person"],[9],[0,"\\n "],[1,[27,"user-avatar",null,[["contributor"],[[22,1,[]]]]],false],[0," "],[1,[22,1,["name"]],false],[0,"\\n "],[10],[0,"\\n "],[7,"td"],[11,"class","kredits"],[9],[0,"\\n "],[7,"span"],[11,"class","amount"],[9],[1,[22,1,["totalKreditsEarned"]],false],[10],[0,"\\n "],[7,"span"],[11,"class","symbol"],[9],[0,"₭S"],[10],[0,"\\n "],[10],[0,"\\n "],[3,"action",[[22,0,[]],"toggleContributorInfo",[22,1,[]]]],[10],[0,"\\n "],[7,"tr"],[12,"class",[28,["metadata ",[27,"if",[[27,"is-current-user",[[22,1,[]]],null],"current-user"],null]," ",[27,"if",[[22,1,["showMetadata"]],"visible"],null]]]],[9],[0,"\\n "],[7,"td"],[11,"colspan","2"],[9],[0,"\\n "],[7,"ul"],[9],[0,"\\n "],[7,"li"],[9],[7,"a"],[12,"href",[28,["https://testnet.etherscan.io/address/",[22,1,["account"]]]]],[9],[0,"Inspect Ethereum transactions"],[10],[10],[0,"\\n"],[4,"if",[[22,1,["ipfsHash"]]],null,{"statements":[[0," "],[7,"li"],[9],[7,"a"],[12,"href",[28,["https://ipfs.io/ipfs/",[22,1,["ipfsHash"]]]]],[9],[0,"Inspect IPFS profile"],[10],[10],[0,"\\n"]],"parameters":[]},null],[0," "],[10],[0,"\\n"],[4,"if",[[22,1,["showMetadata"]]],null,{"statements":[[0," "],[7,"pre"],[9],[1,[22,1,["ipfsData"]],false],[10],[0,""]],"parameters":[]},null],[0," "],[10],[0,"\\n "],[10],[0,"\\n"]],"parameters":[1]},null],[10],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"kredits-web/components/contributor-list/template.hbs"}})
e.default=t}),define("kredits-web/components/ember-chart",["exports","ember-cli-chart/components/ember-chart"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
var n=t.default
e.default=n}),define("kredits-web/components/loading-spinner/component",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
var t=Ember.Component.extend({classNames:["loading-spinner"]})
e.default=t}),define("kredits-web/components/loading-spinner/template",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
var t=Ember.HTMLBars.template({id:"b6SWTOaj",block:'{"symbols":[],"statements":[[7,"p"],[9],[0,"\\n "],[7,"svg"],[11,"xmlns","http://www.w3.org/2000/svg","http://www.w3.org/2000/xmlns/"],[11,"xmlns:xlink","http://www.w3.org/1999/xlink","http://www.w3.org/2000/xmlns/"],[11,"version","1.1"],[11,"x","0px"],[11,"y","0px"],[11,"viewBox","0 0 132 100"],[11,"enable-background","new 0 0 100 100"],[11,"xml:space","preserve","http://www.w3.org/XML/1998/namespace"],[9],[0,"\\n "],[7,"path"],[11,"id","path-comet"],[11,"d","M79.062,24.173L79.062,24.173l-0.021-0.011c-0.068-0.03-0.137-0.062-0.204-0.093L42.392,7.337\\n c0,0,3.065,14.104,4.458,18.019l0,0c0,0-41.754-12.481-46.85-13.67c1.67,6.52,30.607,62.492,30.607,62.492\\n c5.848,11.873,19.394,18.485,33.522,18.485c19.811,0,35.87-16.059,35.87-35.869C100,42.313,91.418,29.837,79.062,24.173z"],[9],[0,"\\n "],[10],[0,"\\n "],[10],[0,"\\n"],[10],[0,"\\n"],[7,"p"],[9],[0,"\\n Loading data...\\n"],[10],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"kredits-web/components/loading-spinner/template.hbs"}})
e.default=t}),define("kredits-web/components/proposal-list/component",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
var t=Ember.Component.extend({tagName:"ul",classNames:["proposal-list"],actions:{confirm:function(e){this.contractInteractionEnabled?this.confirmProposal(e):window.alert("Only members can vote on proposals. Please ask someone to set you up.")}}})
e.default=t}),define("kredits-web/components/proposal-list/template",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
var t=Ember.HTMLBars.template({id:"pZHMSOZc",block:'{"symbols":["proposal"],"statements":[[4,"each",[[23,["proposals"]]],null,{"statements":[[0," "],[7,"li"],[12,"data-proposal-id",[22,1,["id"]]],[12,"class",[27,"if",[[22,1,["isExecuted"]],"confirmed","unconfirmed"],null]],[9],[0,"\\n "],[7,"p"],[11,"class","meta"],[9],[0,"\\n "],[7,"span"],[12,"class",[28,["category ",[22,1,["kind"]]]]],[9],[0,"♥ ("],[1,[22,1,["kind"]],false],[0,")"],[10],[0,"\\n "],[7,"span"],[11,"class","recipient"],[9],[1,[22,1,["contributor","name"]],false],[0,":"],[10],[0,"\\n "],[10],[0,"\\n "],[7,"p"],[11,"class","kredits-amount"],[9],[0,"\\n "],[7,"span"],[11,"class","amount"],[9],[1,[22,1,["amount"]],false],[10],[7,"span"],[11,"class","symbol"],[9],[0,"₭S"],[10],[0,"\\n "],[10],[0,"\\n "],[7,"p"],[11,"class","description"],[9],[0,"\\n "],[7,"span"],[11,"class","description"],[9],[1,[22,1,["description"]],false],[10],[0,"\\n "],[10],[0,"\\n "],[7,"p"],[11,"class","voting"],[9],[0,"\\n"],[4,"unless",[[22,1,["isExecuted"]]],null,{"statements":[[0," "],[7,"span"],[11,"class","votes"],[9],[0,"("],[1,[22,1,["votesCount"]],false],[0,"/"],[1,[22,1,["votesNeeded"]],false],[0," votes)"],[10],[0,"\\n "],[7,"button"],[9],[0,"+1"],[3,"action",[[22,0,[]],"confirm",[22,1,["id"]]]],[10],[0,"\\n"]],"parameters":[]},null],[0," "],[10],[0,"\\n "],[10],[0,"\\n"]],"parameters":[1]},null]],"hasEval":false}',meta:{moduleName:"kredits-web/components/proposal-list/template.hbs"}})
e.default=t}),define("kredits-web/components/user-avatar/component",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
var t=Ember.Component.extend({contributor:null,tagName:"img",classNames:["avatar"],attributeBindings:["src","title"],src:Ember.computed.alias("contributor.avatarURL"),title:Ember.computed.alias("contributor.name")})
e.default=t}),define("kredits-web/components/user-avatar/template",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
var t=Ember.HTMLBars.template({id:"rnnAjEgP",block:'{"symbols":[],"statements":[],"hasEval":false}',meta:{moduleName:"kredits-web/components/user-avatar/template.hbs"}})
e.default=t}),define("kredits-web/controllers/application",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
var t=Ember.Controller.extend({kredits:Ember.inject.service()})
e.default=t}),define("kredits-web/controllers/index",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
var t=Ember.Controller.extend({kredits:Ember.inject.service(),currentBlock:Ember.computed.alias("kredits.currentBlock"),contributors:Ember.computed.alias("kredits.contributors"),contributorsWithKredits:Ember.computed.filter("contributors",function(e){return e.get("totalKreditsEarnedRaw").gt(0)}),contributorsSorting:Object.freeze(["totalKreditsEarned:desc"]),contributorsSorted:Ember.computed.sort("contributorsWithKredits","contributorsSorting"),contributions:Ember.computed.alias("kredits.contributions"),contributionsSorting:Object.freeze(["id:desc"]),contributionsUnconfirmed:Ember.computed("contributions.[]","currentBlock",function(){var e=this
return this.contributions.filter(function(t){return t.confirmedAt>e.currentBlock})}),contributionsConfirmed:Ember.computed("contributions.[]","currentBlock",function(){var e=this
return this.contributions.filter(function(t){return t.confirmedAt<=e.currentBlock})}),contributionsUnconfirmedSorted:Ember.computed.sort("contributionsUnconfirmed","contributionsSorting"),contributionsConfirmedSorted:Ember.computed.sort("contributionsConfirmed","contributionsSorting"),actions:{vetoContribution:function(){},confirmProposal:function(e){this.kredits.vote(e).then(function(e){window.confirm("Vote submitted to Ethereum blockhain: "+e.hash)})},save:function(e){var t=this
return this.kredits.addContributor(e).then(function(e){return t.contributors.pushObject(e),e})}}})
e.default=t}),define("kredits-web/controllers/proposals/new",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
var t=Ember.Controller.extend({kredits:Ember.inject.service(),contributors:Ember.computed.alias("kredits.contributors"),minedContributors:Ember.computed.filterBy("contributors","id"),actions:{save:function(e){var t=this,n=this.contributors.findBy("id",e.contributorId)
return e.contributorIpfsHash=n.get("ipfsHash"),this.kredits.addProposal(e).then(function(e){return t.transitionToRoute("index"),e})}}})
e.default=t}),define("kredits-web/helpers/and",["exports","ember-truth-helpers/helpers/and"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"and",{enumerable:!0,get:function(){return t.and}})}),define("kredits-web/helpers/app-version",["exports","kredits-web/config/environment","ember-cli-app-version/utils/regexp"],function(e,t,n){function r(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=t.default.APP.version,o=r.versionOnly||r.hideSha,s=r.shaOnly||r.hideVersion,a=null
return o&&(r.showExtended&&(a=i.match(n.versionExtendedRegExp)),a||(a=i.match(n.versionRegExp))),s&&(a=i.match(n.shaRegExp)),a?a[0]:i}Object.defineProperty(e,"__esModule",{value:!0}),e.appVersion=r,e.default=void 0
var i=Ember.Helper.helper(r)
e.default=i}),define("kredits-web/helpers/await",["exports","ember-promise-helpers/helpers/await"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("kredits-web/helpers/eq",["exports","ember-truth-helpers/helpers/equal"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"equal",{enumerable:!0,get:function(){return t.equal}})}),define("kredits-web/helpers/gt",["exports","ember-truth-helpers/helpers/gt"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"gt",{enumerable:!0,get:function(){return t.gt}})}),define("kredits-web/helpers/gte",["exports","ember-truth-helpers/helpers/gte"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"gte",{enumerable:!0,get:function(){return t.gte}})}),define("kredits-web/helpers/is-array",["exports","ember-truth-helpers/helpers/is-array"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"isArray",{enumerable:!0,get:function(){return t.isArray}})}),define("kredits-web/helpers/is-current-user",["exports"],function(e){function t(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=[],r=!0,i=!1,o=void 0
try{for(var s,a=e[Symbol.iterator]();!(r=(s=a.next()).done)&&(n.push(s.value),!t||n.length!==t);r=!0);}catch(u){i=!0,o=u}finally{try{r||null==a.return||a.return()}finally{if(i)throw o}}return n}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
var n=Ember.Helper.extend({kredits:Ember.inject.service(),currentUser:Ember.computed.alias("kredits.currentUser"),compute:function(e){var n=t(e,1)[0]
return Ember.isPresent(n)&&Ember.isPresent(this.currentUser)&&n.account===this.currentUser.account}})
e.default=n}),define("kredits-web/helpers/is-equal",["exports","ember-truth-helpers/helpers/is-equal"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"isEqual",{enumerable:!0,get:function(){return t.isEqual}})})
define("kredits-web/helpers/is-fulfilled",["exports","ember-promise-helpers/helpers/is-fulfilled"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"isFulfilled",{enumerable:!0,get:function(){return t.isFulfilled}})}),define("kredits-web/helpers/is-pending",["exports","ember-promise-helpers/helpers/is-pending"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"isPending",{enumerable:!0,get:function(){return t.isPending}})}),define("kredits-web/helpers/is-rejected",["exports","ember-promise-helpers/helpers/is-rejected"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"isRejected",{enumerable:!0,get:function(){return t.isRejected}})}),define("kredits-web/helpers/lt",["exports","ember-truth-helpers/helpers/lt"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"lt",{enumerable:!0,get:function(){return t.lt}})}),define("kredits-web/helpers/lte",["exports","ember-truth-helpers/helpers/lte"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"lte",{enumerable:!0,get:function(){return t.lte}})}),define("kredits-web/helpers/not-eq",["exports","ember-truth-helpers/helpers/not-equal"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"notEq",{enumerable:!0,get:function(){return t.notEq}})}),define("kredits-web/helpers/not",["exports","ember-truth-helpers/helpers/not"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"not",{enumerable:!0,get:function(){return t.not}})}),define("kredits-web/helpers/or",["exports","ember-truth-helpers/helpers/or"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"or",{enumerable:!0,get:function(){return t.or}})}),define("kredits-web/helpers/promise-all",["exports","ember-promise-helpers/helpers/promise-all"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"promiseAll",{enumerable:!0,get:function(){return t.promiseAll}})}),define("kredits-web/helpers/promise-hash",["exports","ember-promise-helpers/helpers/promise-hash"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"promiseHash",{enumerable:!0,get:function(){return t.promiseHash}})}),define("kredits-web/helpers/promise-rejected-reason",["exports","ember-promise-helpers/helpers/promise-rejected-reason"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("kredits-web/helpers/xor",["exports","ember-truth-helpers/helpers/xor"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"xor",{enumerable:!0,get:function(){return t.xor}})}),define("kredits-web/initializers/app-version",["exports","ember-cli-app-version/initializer-factory","kredits-web/config/environment"],function(e,t,n){var r,i
Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0,n.default.APP&&(r=n.default.APP.name,i=n.default.APP.version)
var o={name:"App Version",initialize:(0,t.default)(r,i)}
e.default=o}),define("kredits-web/initializers/container-debug-adapter",["exports","ember-resolver/resolvers/classic/container-debug-adapter"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
var n={name:"container-debug-adapter",initialize:function(){var e=arguments[1]||arguments[0]
e.register("container-debug-adapter:main",t.default),e.inject("container-debug-adapter:main","namespace","application:main")}}
e.default=n}),define("kredits-web/initializers/export-application-global",["exports","kredits-web/config/environment"],function(e,t){function n(){var e=arguments[1]||arguments[0]
if(!1!==t.default.exportApplicationGlobal){var n
if("undefined"!=typeof window)n=window
else if("undefined"!=typeof global)n=global
else{if("undefined"==typeof self)return
n=self}var r,i=t.default.exportApplicationGlobal
r="string"==typeof i?i:Ember.String.classify(t.default.modulePrefix),n[r]||(n[r]=e,e.reopen({willDestroy:function(){this._super.apply(this,arguments),delete n[r]}}))}}Object.defineProperty(e,"__esModule",{value:!0}),e.initialize=n,e.default=void 0
var r={name:"export-application-global",initialize:n}
e.default=r}),define("kredits-web/models/contribution",["exports","kredits-web/utils/cps/bignumber"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
var n=Ember.Object.extend({id:null,contributorId:null,amount:null,confirmedAt:(0,t.default)("confirmedAtBlock","toNumber"),vetoed:null,ipfsHash:null,creatorAccount:null,kind:null,description:null,details:null,url:null,ipfsData:"",init:function(){this._super.apply(this,arguments),this.set("details",{})}})
e.default=n}),define("kredits-web/models/contributor",["exports","kredits-web/utils/cps/bignumber","kredits-web/utils/cps/kredits"],function(e,t,n){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
var r=Ember.Object.extend({id:(0,t.default)("idRaw","toString"),account:null,balance:(0,n.default)("balanceRaw"),totalKreditsEarned:(0,t.default)("totalKreditsEarnedRaw","toNumber"),contributionsCount:(0,t.default)("contributionsCountRaw","toNumber"),isCore:!1,ipfsHash:null,kind:null,name:null,url:null,github_username:null,github_uid:null,wiki_username:null,ipfsData:"",avatarURL:Ember.computed("github_uid",function(){var e=this.github_uid
if(e)return"https://avatars2.githubusercontent.com/u/".concat(e,"?v=3&s=128")})})
e.default=r}),define("kredits-web/models/proposal",["exports","kredits-web/utils/cps/bignumber"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
var n=Ember.Object.extend({id:(0,t.default)("idRaw","toString"),creatorAccount:null,contributorId:(0,t.default)("contributorIdRaw","toString"),amount:(0,t.default)("amountRaw","toNumber"),votesCount:(0,t.default)("votesCountRaw","toNumber"),votesNeeded:(0,t.default)("votesNeededRaw","toNumber"),executed:null,ipfsHash:null,isExecuted:Ember.computed.alias("executed"),kind:null,description:null,details:null,url:null,ipfsData:"",init:function(){this._super.apply(this,arguments),this.set("details",{})}})
e.default=n}),define("kredits-web/resolver",["exports","ember-resolver"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
var n=t.default
e.default=n}),define("kredits-web/router",["exports","kredits-web/config/environment"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
var n=Ember.Router.extend({location:t.default.locationType,rootURL:t.default.rootURL})
n.map(function(){this.route("proposals",function(){this.route("new")})})
var r=n
e.default=r}),define("kredits-web/routes/application",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
var t=Ember.Route.extend({kredits:Ember.inject.service(),beforeModel:function(e){var t=this.kredits
return t.setup().then(function(){t.get("kredits").preflightChecks().catch(function(e){console.error("Kredits preflight check failed!"),console.error(e)}),t.get("accountNeedsUnlock")&&confirm("It looks like you have an Ethereum wallet available. Please unlock your account.")&&e.retry()}).catch(function(e){console.log("Error initializing Kredits",e)})},afterModel:function(){var e=this
return this.kredits.loadInitialData().then(function(){e.kredits.addContractEventHandlers()})}})
e.default=t}),define("kredits-web/services/ajax",["exports","ember-ajax/services/ajax"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("kredits-web/services/kredits",["exports","npm:ethers","npm:kredits-contracts","kredits-web/utils/format-kredits","kredits-web/config/environment","kredits-web/models/contributor","kredits-web/models/proposal","kredits-web/models/contribution"],function(e,t,n,r,i,o,s,a){function u(e,t,n,r,i,o,s){try{var a=e[o](s),u=a.value}catch(l){return void n(l)}a.done?t(u):Promise.resolve(u).then(r,i)}function l(e){return function(){var t=this,n=arguments
return new Promise(function(r,i){var o=e.apply(t,n)
function s(e){u(o,r,i,s,a,"next",e)}function a(e){u(o,r,i,s,a,"throw",e)}s(void 0)})}}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
var d=Ember.Service.extend({currentBlock:null,currentUserAccounts:null,currentUser:null,contributors:null,proposals:null,contributions:null,currentUserIsContributor:Ember.computed.notEmpty("currentUser"),currentUserIsCore:Ember.computed.alias("currentUser.isCore"),hasAccounts:Ember.computed.notEmpty("currentUserAccounts"),accountNeedsUnlock:Ember.computed("currentUserAccounts",function(){return this.currentUserAccounts&&Ember.isEmpty(this.currentUserAccounts)}),init:function(){this._super.apply(this,arguments),this.set("contributors",[]),this.set("proposals",[]),this.set("contributions",[])},getEthProvider:function(){var e,n=this
return new Ember.RSVP.Promise(function(){var r=l(regeneratorRuntime.mark(function r(o){var s,a
return regeneratorRuntime.wrap(function(r){for(;;)switch(r.prev=r.next){case 0:if(a=function(n,r){console.debug("[kredits] Using user-provided instance, e.g. from Mist browser or Metamask"),(e=new t.default.providers.Web3Provider(n)).listAccounts().then(function(t){r.set("currentUserAccounts",t)
var n=0===t.length?null:e.getSigner()
o({ethProvider:e,ethSigner:n})})},s=function(){console.debug("[kredits] Creating new instance from npm module class"),console.debug("[kredits] providerURL: ".concat(i.default.web3ProviderUrl)),e=new t.default.providers.JsonRpcProvider(i.default.web3ProviderUrl),o({ethProvider:e,ethSigner:null})},!window.ethereum){r.next=14
break}return r.prev=3,r.next=6,window.ethereum.enable()
case 6:a(window.ethereum,n),r.next=12
break
case 9:r.prev=9,r.t0=r.catch(3),s()
case 12:r.next=15
break
case 14:window.web3?a(window.web3.currentProvider,n):s()
case 15:case"end":return r.stop()}},r,null,[[3,9]])}))
return function(e){return r.apply(this,arguments)}}())},setup:function(){var e=this
return this.getEthProvider().then(function(t){return new n.default(t.ethProvider,t.ethSigner,{addresses:{Kernel:i.default.kreditsKernelAddress},apm:i.default.kreditsApmDomain,ipfsConfig:i.default.ipfs}).init().then(function(){var t=l(regeneratorRuntime.mark(function t(n){return regeneratorRuntime.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return e.set("kredits",n),t.t0=e,t.next=4,n.provider.getBlockNumber()
case 4:return t.t1=t.sent,t.t0.set.call(t.t0,"currentBlock",t.t1),e.currentUserAccounts&&e.currentUserAccounts.length>0&&e.getCurrentUser.then(function(t){e.set("currentUser",t)}),t.abrupt("return",n)
case 8:case"end":return t.stop()}},t)}))
return function(e){return t.apply(this,arguments)}}())})},totalSupply:Ember.computed(function(){return this.kredits.Token.functions.totalSupply().then(function(e){return(0,r.default)(e)})}),totalKreditsEarned:Ember.computed(function(){return this.kredits.Contribution.functions.totalKreditsEarned(!0).then(function(e){return e.toNumber()})}),loadInitialData:function(){var e=this
return this.getContributors().then(function(t){return e.contributors.pushObjects(t)}).then(function(){return e.getContributions()}).then(function(t){return e.contributions.pushObjects(t)})},addContributor:function(e){return console.debug("[kredits] add contributor",e),this.kredits.Contributor.add(e).then(function(t){return console.debug("[kredits] add contributor response",t),o.default.create(e)})},getContributors:function(){return this.kredits.Contributor.all().then(function(e){return e.map(function(e){return o.default.create(e)})})},addProposal:function(e){var t=this
return console.debug("[kredits] add proposal",e),this.kredits.Proposal.addProposal(e).then(function(n){return console.debug("[kredits] add proposal response",n),e.contributor=t.contributors.findBy("id",e.contributorId),s.default.create(e)})},getProposals:function(){var e=this
return this.kredits.Proposal.all().then(function(t){return t.map(function(t){return t.contributor=e.contributors.findBy("id",t.contributorId.toString()),s.default.create(t)})})},getContributions:function(){var e=this
return this.kredits.Contribution.all().then(function(t){return t.map(function(t){return t.contributor=e.contributors.findBy("id",t.contributorId.toString()),a.default.create(t)})})},vote:function(e){return console.debug("[kredits] vote for",e),this.kredits.Proposal.functions.vote(e).then(function(e){return console.debug("[kredits] vote response",e),e})},getCurrentUser:Ember.computed("kredits.provider",function(){var e=this
return Ember.isEmpty(this.currentUserAccounts)?Ember.RSVP.resolve():this.kredits.Contributor.functions.getContributorIdByAddress(this.get("currentUserAccounts.firstObject")).then(function(t){return 0===t?Ember.RSVP.resolve():e.kredits.Contributor.getById(t)})}),findProposalById:function(e){return this.proposals.findBy("id",e.toString())},findContributionById:function(e){return this.contributions.findBy("id",e.toString())},addContractEventHandlers:function(){this.kredits.Proposal.on("ProposalCreated",this.handleProposalCreated.bind(this)).on("ProposalVoted",this.handleProposalVoted.bind(this)).on("ProposalExecuted",this.handleProposalExecuted.bind(this)),this.kredits.Token.on("Transfer",this.handleTransfer.bind(this))},handleProposalCreated:function(e){var t=this
this.findProposalById(e)?console.debug("[events] proposal exists, not adding from event"):this.kredits.Proposal.getById(e).then(function(e){e.contributor=t.contributors.findBy("id",e.contributorId.toString()),t.proposals.pushObject(s.default.create(e))})},handleProposalVoted:function(e,t,n){var r=this.findProposalById(e)
r&&r.set("votesCount",n)},handleProposalExecuted:function(e,t,n){var r=this.findProposalById(e)
r.get("isExecuted")?console.debug("[events] proposal already executed, not adding from event"):(r.set("executed",!0),this.contributors.findBy("id",t.toString()).incrementProperty("balance",n))},handleTransfer:function(e,t,n){n=n.toNumber(),this.contributors.findBy("address",e).decrementProperty("balance",n),this.contributors.findBy("address",t).incrementProperty("balance",n)}})
e.default=d}),define("kredits-web/templates/application-loading",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
var t=Ember.HTMLBars.template({id:"/K85jZFR",block:'{"symbols":[],"statements":[[1,[21,"loading-spinner"],false],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"kredits-web/templates/application-loading.hbs"}})
e.default=t}),define("kredits-web/templates/application",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
var t=Ember.HTMLBars.template({id:"M6vaFJ5T",block:'{"symbols":[],"statements":[[7,"header"],[11,"id","topbar"],[9],[0,"\\n "],[7,"h1"],[9],[0,"Kosmos Kredits"],[10],[0,"\\n\\n "],[7,"section"],[11,"id","user-account"],[9],[0,"\\n"],[4,"if",[[23,["kredits","hasAccounts"]]],null,{"statements":[[4,"if",[[23,["kredits","currentUser"]]],null,{"statements":[[0," "],[1,[23,["kredits","currentUser","name"]],false],[0,"\\n "],[4,"if",[[23,["kredits","currentUserIsCore"]]],null,{"statements":[[0,"(core)"]],"parameters":[]},null],[0,"\\n"]],"parameters":[]},null]],"parameters":[]},{"statements":[[0," Anonymous\\n"]],"parameters":[]}],[0," "],[10],[0,"\\n"],[10],[0,"\\n\\n"],[1,[21,"outlet"],false],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"kredits-web/templates/application.hbs"}})
e.default=t}),define("kredits-web/templates/index",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
var t=Ember.HTMLBars.template({id:"vlh2lH1n",block:'{"symbols":[],"statements":[[7,"main"],[11,"id","index"],[9],[0,"\\n\\n "],[7,"div"],[11,"id","stats"],[9],[0,"\\n "],[7,"section"],[11,"id","people"],[9],[0,"\\n "],[7,"header"],[9],[0,"\\n "],[7,"h2"],[9],[0,"Contributors"],[10],[0,"\\n "],[10],[0,"\\n "],[7,"div"],[11,"class","content"],[9],[0,"\\n "],[1,[27,"contributor-list",null,[["contributors"],[[23,["contributorsSorted"]]]]],false],[0,"\\n\\n "],[7,"p"],[11,"class","stats"],[9],[0,"\\n "],[7,"span"],[11,"class","number"],[9],[1,[27,"await",[[23,["kredits","totalKreditsEarned"]]],null],false],[10],[0," kredits issued and distributed among\\n "],[7,"span"],[11,"class","number"],[9],[1,[23,["contributorsWithKredits","length"]],false],[10],[0," contributors.\\n "],[10],[0,"\\n "],[10],[0,"\\n "],[10],[0,"\\n\\n "],[7,"section"],[11,"id","contributions-by-type"],[9],[0,"\\n "],[7,"header"],[9],[0,"\\n "],[7,"h2"],[9],[0,"Contributions by type"],[10],[0,"\\n "],[10],[0,"\\n "],[7,"div"],[11,"class","content"],[9],[0,"\\n "],[1,[27,"chart-contributions-by-type",null,[["contributions"],[[23,["contributions"]]]]],false],[0,"\\n "],[10],[0,"\\n "],[10],[0,"\\n "],[10],[0,"\\n\\n "],[7,"div"],[11,"id","contributions"],[9],[0,"\\n"],[4,"if",[[23,["contributionsUnconfirmed"]]],null,{"statements":[[0," "],[7,"section"],[11,"id","contributions-unconfirmed"],[9],[0,"\\n "],[7,"header"],[9],[0,"\\n "],[7,"h2"],[9],[0,"Latest Contributions"],[10],[0,"\\n "],[10],[0,"\\n "],[7,"div"],[11,"class","content"],[9],[0,"\\n"],[0," "],[1,[27,"contribution-list",null,[["contributions","vetoContribution","contractInteractionEnabled"],[[23,["contributionsUnconfirmedSorted"]],[27,"action",[[22,0,[]],"vetoContribution"],null],[23,["kredits","hasAccounts"]]]]],false],[0,"\\n "],[10],[0,"\\n "],[10],[0,"\\n"]],"parameters":[]},null],[0,"\\n "],[7,"section"],[11,"id","contributions-confirmed"],[9],[0,"\\n "],[7,"header"],[9],[0,"\\n "],[7,"h2"],[9],[0,"Confirmed Contributions"],[10],[0,"\\n "],[10],[0,"\\n "],[7,"div"],[11,"class","content"],[9],[0,"\\n "],[1,[27,"contribution-list",null,[["contributions","vetoContribution"],[[23,["contributionsConfirmedSorted"]],[27,"action",[[22,0,[]],"vetoContribution"],null]]]],false],[0,"\\n "],[10],[0,"\\n\\n"],[4,"if",[[23,["kredits","hasAccounts"]]],null,{"statements":[[0," "],[7,"p"],[11,"class","actions"],[9],[0,"\\n "],[4,"link-to",["proposals.new"],null,{"statements":[[0,"Create new proposal"]],"parameters":[]},null],[0,"\\n "],[10],[0,"\\n"]],"parameters":[]},null],[0," "],[10],[0,"\\n "],[10],[0,"\\n\\n"],[4,"if",[[23,["kredits","hasAccounts"]]],null,{"statements":[[0," "],[7,"section"],[11,"id","add-contributor"],[9],[0,"\\n "],[7,"header"],[9],[0,"\\n "],[7,"h2"],[9],[0,"Add Contributor"],[10],[0,"\\n "],[10],[0,"\\n\\n "],[7,"div"],[11,"class","content"],[9],[0,"\\n"],[4,"if",[[23,["kredits","currentUser","isCore"]]],null,{"statements":[[0," "],[1,[27,"add-contributor",null,[["contributors","save"],[[23,["contributors"]],[27,"action",[[22,0,[]],"save"],null]]]],false],[0,"\\n"]],"parameters":[]},{"statements":[[0," Only core team members can add new contributors. Please ask someone to set you up.\\n"]],"parameters":[]}],[0," "],[10],[0,"\\n "],[10],[0,"\\n"]],"parameters":[]},null],[0,"\\n"],[10],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"kredits-web/templates/index.hbs"}})
e.default=t}),define("kredits-web/templates/proposals/new",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
var t=Ember.HTMLBars.template({id:"vauAEy3a",block:'{"symbols":[],"statements":[[7,"section"],[11,"id","add-proposal"],[9],[0,"\\n "],[7,"header"],[9],[0,"\\n "],[7,"h2"],[9],[0,"Add Proposal"],[10],[0,"\\n "],[10],[0,"\\n\\n "],[7,"div"],[11,"class","content"],[9],[0,"\\n "],[1,[27,"add-proposal",null,[["contributors","save"],[[23,["minedContributors"]],[27,"action",[[22,0,[]],"save"],null]]]],false],[0,"\\n "],[10],[0,"\\n"],[10],[0,"\\n\\n"]],"hasEval":false}',meta:{moduleName:"kredits-web/templates/proposals/new.hbs"}})
e.default=t}),define("kredits-web/utils/cps/bignumber",["exports","npm:ethers"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(e,n){return Ember.computed(e,{get:function(){var r=this.get(e)
return r&&t.default.utils.BigNumber.isBigNumber(r)?r[n]():r},set:function(r,i){var o=t.default.utils.bigNumberify(i)
return this.set(e,o),o[n]()}})}}),define("kredits-web/utils/cps/kredits",["exports","npm:ethers","kredits-web/utils/format-kredits"],function(e,t,n){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}
return Ember.computed(e,{get:function(){var t=this.get(e)
return(0,n.default)(t,r)},set:function(i,o){var s=t.default.utils.bigNumberify(o)
return this.set(e,s),(0,n.default)(s,r)}})}}),define("kredits-web/utils/format-kredits",["exports","npm:ethers"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.default.utils.formatEther(e)
n.decimals||(r=parseInt(r).toString())
return r}})
define("kredits-web/config/environment",[],function(){try{var e="kredits-web/config/environment",t=document.querySelector('meta[name="'+e+'"]').getAttribute("content"),n={default:JSON.parse(decodeURIComponent(t))}
return Object.defineProperty(n,"__esModule",{value:!0}),n}catch(r){throw new Error('Could not read config from meta tag with name "'+e+'".')}}),runningTests||require("kredits-web/app").default.create({name:"kredits-web",version:"1.0.0+d02fb471"})
//# sourceMappingURL=kredits-web-53fb36cbed9fcae08f4e0a0129f127b3.map
@@ -0,0 +1,2 @@
"use strict";define("kredits-web/app",["exports","ember","kredits-web/resolver","ember-load-initializers","kredits-web/config/environment"],function(e,t,n,r,l){var o=void 0;t.default.MODEL_FACTORY_INJECTIONS=!0,o=t.default.Application.extend({modulePrefix:l.default.modulePrefix,podModulePrefix:l.default.podModulePrefix,Resolver:n.default}),(0,r.default)(o,l.default.modulePrefix),e.default=o}),define("kredits-web/components/add-contributor/component",["exports","ember","kredits-web/models/contributor"],function(e,t,n){var r=t.default.Component,l=t.default.isPresent,o=t.default.inject.service,s=t.default.computed;e.default=r.extend({kredits:o(),newContributor:null,inProgress:!1,isValidAddress:function(){return this.get("kredits.web3").isAddress(this.get("newContributor.address"))}.property("kredits.web3","newContributor.address"),isValidName:function(){return l(this.get("newContributor.name"))}.property("newContributor.name"),isValidURL:function(){return l(this.get("newContributor.url"))}.property("newContributor.url"),isValidGithubUID:function(){return l(this.get("newContributor.github_uid"))}.property("newContributor.github_uid"),isValidGithubUsername:function(){return l(this.get("newContributor.github_username"))}.property("newContributor.github_username"),isValidWikiUsername:function(){return l(this.get("newContributor.wiki_username"))}.property("newContributor.wiki_username"),isValid:s.and("isValidAddress","isValidName","isValidGithubUID"),reset:function(){this.setProperties({newContributor:n.default.create({kind:"person"}),inProgress:!1})},actions:{save:function(){var e=this;return this.get("contractInteractionEnabled")?void(this.get("isValid")?(this.set("inProgress",!0),this.get("kredits").addContributor(this.get("newContributor")).then(function(t){e.reset(),e.get("contributors").pushObject(t),window.scroll(0,0)})):alert("Invalid data. Please review and try again.")):void alert("Only core team members can add new contributors. Please ask someone to set you up.")}}})}),define("kredits-web/components/add-contributor/template",["exports"],function(e){e.default=Ember.HTMLBars.template({id:"WQk0xZ2e",block:'{"statements":[["open-element","form",[]],["modifier",["action"],[["get",[null]],"save"],[["on"],["submit"]]],["flush-element"],["text","\\n "],["open-element","p",[]],["flush-element"],["text","\\n "],["append",["helper",["input"],null,[["type","name","id","checked"],["checkbox","is-core","is-core",["get",["newContributor","isCore"]]]]],false],["text","\\n "],["open-element","label",[]],["static-attr","for","is-core"],["static-attr","class","checkbox"],["flush-element"],["text","\\n Core team member (can add contributors)\\n "],["close-element"],["text","\\n "],["close-element"],["text","\\n "],["open-element","p",[]],["flush-element"],["text","\\n "],["append",["helper",["input"],null,[["name","type","placeholder","value","class"],["address","text","0xF18E631Ea191aE4ebE70046Fcb01a436554421BA4",["get",["newContributor","address"]],["helper",["if"],[["get",["isValidAddress"]],"valid",""],null]]]],false],["text","\\n "],["close-element"],["text","\\n "],["open-element","p",[]],["flush-element"],["text","\\n "],["open-element","select",[]],["static-attr","required",""],["dynamic-attr","onchange",["helper",["action"],[["get",[null]],["helper",["mut"],[["get",["newContributor","kind"]]],null]],[["value"],["target.value"]]],null],["flush-element"],["text","\\n "],["open-element","option",[]],["static-attr","value","person"],["dynamic-attr","selected",["helper",["eq"],[["get",["newContributor","kind"]],"person"],null],null],["flush-element"],["text","Person"],["close-element"],["text","\\n "],["open-element","option",[]],["static-attr","value","organization"],["dynamic-attr","selected",["helper",["eq"],[["get",["newContributor","kind"]],"organization"],null],null],["flush-element"],["text","Organization"],["close-element"],["text","\\n "],["close-element"],["text","\\n "],["close-element"],["text","\\n "],["open-element","p",[]],["flush-element"],["text","\\n "],["append",["helper",["input"],null,[["name","type","placeholder","value","class"],["name","text","Name",["get",["newContributor","name"]],["helper",["if"],[["get",["isValidName"]],"valid",""],null]]]],false],["text","\\n "],["close-element"],["text","\\n "],["open-element","p",[]],["flush-element"],["text","\\n "],["append",["helper",["input"],null,[["name","type","placeholder","value","class"],["url","text","URL",["get",["newContributor","url"]],["helper",["if"],[["get",["isValidURL"]],"valid",""],null]]]],false],["text","\\n "],["close-element"],["text","\\n "],["open-element","p",[]],["flush-element"],["text","\\n "],["append",["helper",["input"],null,[["name","type","placeholder","value","class"],["github_uid","text","GitHub UID (123)",["get",["newContributor","github_uid"]],["helper",["if"],[["get",["isValidGithubUID"]],"valid",""],null]]]],false],["text","\\n "],["close-element"],["text","\\nLine truncated
},kind:this.get("kind"),description:this.get("description"),details:{}};return n(this.get("url"))&&(e.url=this.get("url")),e},serializeContribution:function(){return JSON.stringify(this.contributionToJSON())}})}),define("kredits-web/resolver",["exports","ember-resolver"],function(e,t){e.default=t.default}),define("kredits-web/router",["exports","ember","kredits-web/config/environment"],function(e,t,n){var r=t.default.Router.extend({location:n.default.locationType,rootURL:n.default.rootURL});r.map(function(){this.route("spinner"),this.route("proposals",function(){this.route("new")})}),e.default=r}),define("kredits-web/routes/application",["exports","ember"],function(e,t){e.default=t.default.Route.extend({})}),define("kredits-web/routes/index",["exports","ember","kredits-web/models/contributor"],function(e,t,n){e.default=t.default.Route.extend({kredits:t.default.inject.service(),model:function(){var e=this.get("kredits");return t.default.RSVP.hash({contributors:e.getContributors(),totalSupply:e.getValueFromContract("tokenContract","totalSupply"),proposals:e.getProposals(),newContributor:n.default.create({kind:"person"})})}})}),define("kredits-web/routes/proposals/new",["exports","ember","kredits-web/models/proposal"],function(e,t,n){var r=t.default.Route,l=t.default.RSVP,o=t.default.inject.service;e.default=r.extend({kredits:o(),model:function(e){var t=n.default.create({recipientAddress:e.recipient,amount:e.amount,url:e.url,kind:e.kind||"dev",ipfsHash:e.ipfsHash});return l.hash({proposal:t,contributors:this.get("kredits").getContributors()})},setupController:function(e,t){this._super(e,t.proposal),e.set("contributors",t.contributors)}})}),define("kredits-web/routes/spinner",["exports","ember"],function(e,t){e.default=t.default.Route.extend({})}),define("kredits-web/services/ajax",["exports","ember-ajax/services/ajax"],function(e,t){Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("kredits-web/services/ipfs",["exports","ember","npm:ipfs-api","kredits-web/config/environment"],function(e,t,n,r){e.default=t.default.Service.extend({ipfsInstance:null,ipfs:function(){if(this.get("ipfsInstance"))return this.get("ipfsInstance");var e=(0,n.default)(r.default.ipfs);return this.set("ipfsInstance",e),e}.property("ipfsInstance"),storeFile:function(e){var n=this.get("ipfs");return n.add(new n.Buffer(e)).then(function(n){return t.default.Logger.debug("[ipfs] stored content in IPFS",e,n[0].hash),n[0].hash})},getFile:function(e){return this.get("ipfs").cat(e,{buffer:!0}).then(function(e){return e.toString()},function(n){throw t.default.Logger.error("[ipfs] error trying to fetch file",e,n),n})}})}),define("kredits-web/services/kredits",["exports","ember","npm:web3","kredits-web/config/environment","kredits-web/models/contributor","kredits-web/models/proposal","npm:kredits-contracts","npm:uuid"],function(e,t,n,r,l,o,s,a){var i=t.default.Service,u=t.default.isPresent,d=t.default.inject.service;e.default=i.extend({ipfs:d(),web3Instance:null,web3Provided:!1,web3:function(){if(this.get("web3Instance"))return this.get("web3Instance");var e=void 0;if("undefined"!=typeof window.web3)t.default.Logger.debug("[kredits] Using user-provided instance, e.g. from Mist browser or Metamask"),e=window.web3,this.set("web3Provided",!0);else{t.default.Logger.debug("[kredits] Creating new instance from npm module class");var l=localStorage.getItem("config:web3ProviderUrl")||r.default.web3ProviderUrl,o=new n.default.providers.HttpProvider(l);e=new n.default(o)}return this.set("web3Instance",e),window.web3=e,e}.property("web3Instance"),currentUserAccounts:function(){return this.get("web3Provided")&&this.get("web3").eth.accounts||[]}.property("web3Provided","web3"),initializeKreditsContract:function(){var e=null;return u(r.default.contractMetadata)?(localStorage.getItem("config:networkId")&&(r.default.contractMetadata.networkId=localStorage.getItem("config:networkId")),e=(0,s.default)(this.get("web3"),r.default.contractMetadata).Kredits):e=(0,s.default)(this.get("web3")).Kredits,e},kreditsContract:function(){if(this.get("kreditsContractInstance"))return this.get("kreditsContractInstance");var e=this.initializeKreditsContract();return this.set("kreditsContractInstance",e),e}.property("kreditsContractInstance","web3"),tokenContract:function(){if(this.get("tokenContractInstance"))return this.get("tokenContractInstance");var e=(0,s.default)(this.get("web3"),r.default.contractMetadata).Token;return this.set("tokenContractInstance",e),window.Token=e,e}.property("tokenContractInstance","web3"),getValueFromContract:function(e,n){for(var r=arguments.length,l=Array(r>2?r-2:0),o=2;o<r;o++)l[o-2]=arguments[o];var s=this;return t.default.Logger.debug("[kredits] read from contract",e),new t.default.RSVP.Promise(function(t,r){var o;(o=s.get(e))[n].apply(o,l.concat([function(e,n){return e?void r(e):void t(n)}]))})},getContributorData:function(e){var n=this,r=new t.default.RSVP.Promise(function(r,o){n.getValueFromContract("krLine truncated
@@ -0,0 +1,42 @@
"use strict"
define("kredits-web/app",["exports","kredits-web/resolver","ember-load-initializers","kredits-web/config/environment"],function(e,t,n,r){Object.defineProperty(e,"__esModule",{value:!0})
var o=Ember.Application.extend({modulePrefix:r.default.modulePrefix,podModulePrefix:r.default.podModulePrefix,Resolver:t.default});(0,n.default)(o,r.default.modulePrefix),e.default=o}),define("kredits-web/components/add-contributor/component",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Component.extend({kredits:Ember.inject.service(),attributes:{account:null,name:null,kind:"person",url:null,github_username:null,github_uid:null,wiki_username:null,isCore:!1},didInsertElement:function(){this._super.apply(this,arguments),this.reset()},isValidAccount:Ember.computed.notEmpty("account"),isValidName:Ember.computed.notEmpty("name"),isValidURL:Ember.computed.notEmpty("url"),isValidGithubUID:Ember.computed.notEmpty("github_uid"),isValidGithubUsername:Ember.computed.notEmpty("github_username"),isValidWikiUsername:Ember.computed.notEmpty("wiki_username"),isValid:Ember.computed.and("isValidAccount","isValidName","isValidGithubUID"),reset:function(){this.setProperties(this.attributes)},actions:{submit:function(){var e=this
if(this.isValid){var t=Object.keys(this.attributes),n=this.getProperties(t),r=this.save(n)
this.set("inProgress",r),r.then(function(){e.reset(),window.scroll(0,0),window.alert("Contributor added.")})}else alert("Invalid data. Please review and try again.")}}})}),define("kredits-web/components/add-contributor/template",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"CSegBQfj",block:'{"symbols":[],"statements":[[6,"form"],[3,"action",[[21,0,[]],"submit"],[["on"],["submit"]]],[8],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[1,[26,"input",null,[["name","type","id","checked"],["is-core","checkbox","is-core",[22,["isCore"]]]]],false],[0,"\\n "],[6,"label"],[10,"for","is-core"],[10,"class","checkbox"],[8],[0,"\\n Core team member (can add contributors)\\n "],[9],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[1,[26,"input",null,[["name","type","placeholder","value","class"],["account","text","0xF18E631Ea191aE4ebE70046Fcb01a436554421BA4",[22,["account"]],[26,"if",[[22,["isValidAccount"]],"valid",""],null]]]],false],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[6,"select"],[10,"required",""],[11,"onchange",[26,"action",[[21,0,[]],[26,"mut",[[22,["kind"]]],null]],[["value"],["target.value"]]],null],[8],[0,"\\n "],[6,"option"],[10,"value","person"],[11,"selected",[26,"eq",[[22,["kind"]],"person"],null],null],[8],[0,"Person"],[9],[0,"\\n "],[6,"option"],[10,"value","organization"],[11,"selected",[26,"eq",[[22,["kind"]],"organization"],null],null],[8],[0,"Organization"],[9],[0,"\\n "],[9],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[1,[26,"input",null,[["name","type","placeholder","value","class"],["name","text","Name",[22,["name"]],[26,"if",[[22,["isValidName"]],"valid",""],null]]]],false],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[1,[26,"input",null,[["name","type","placeholder","value","class"],["url","text","URL",[22,["url"]],[26,"if",[[22,["isValidURL"]],"valid",""],null]]]],false],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[1,[26,"input",null,[["name","type","placeholder","value","class"],["github_uid","text","GitHub UID (123)",[22,["github_uid"]],[26,"if",[[22,["isValidGithubUID"]],"valid",""],null]]]],false],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[1,[26,"input",null,[["name","type","placeholder","value","class"],["github_username","text","GitHub username",[22,["github_username"]],[26,"if",[[22,["isValidGithubUsername"]],"valid",""],null]]]],false],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[1,[26,"input",null,[["name","type","placeholder","value","class"],["wiki_username","text","Wiki Username",[22,["wiki_username"]],[26,"if",[[22,["isValidWikiUsername"]],"valid",""],null]]]],false],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[10,"class","actions"],[8],[0,"\\n "],[1,[26,"input",null,[["type","disabled","value"],["submit",[26,"is-pending",[[22,["inProgress"]]],null],[26,"if",[[26,"is-pending",[[22,["inProgress"]]],null],"Processing","Save"],null]]]],false],[0,"\\n "],[9],[0,"\\n"],[9],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"kredits-web/components/add-contributor/template.hbs"}})}),define("kredits-web/components/add-proposal/component",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Component.extend({attributes:{contributorId:null,kind:"community",amount:null,description:null,url:null},didInsertElement:function(){this._super.apply(this,arguments),this.reset()},contributors:[],isValidContributor:Ember.computed.notEmpty("contributorId"),isValidAmount:Ember.computed("amount",function(){return parseInt(this.amount,10)>0}),isValidDescription:Ember.computed.notEmpty("description"),isValidUrl:Ember.computed.notEmpty("url"),isValid:Ember.computed.and("isValidContributor","isValidAmount","isValidDescription"),reset:function(){this.setProperties(this.attributes)},actions:{submit:function(){var e=this
if(this.isValid){var t=Object.keys(this.attributes),n=this.getProperties(t),r=this.save(n)
this.set("inProgress",r),r.then(function(){e.reset(),window.scroll(0,0),window.alert("Proposal added.")})}else alert("Invalid data. Please review and try again.")}}})}),define("kredits-web/components/add-proposal/template",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"cM+dvRZ+",block:'{"symbols":["contributor"],"statements":[[6,"form"],[3,"action",[[21,0,[]],"submit"],[["on"],["submit"]]],[8],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[6,"select"],[10,"required",""],[11,"onchange",[26,"action",[[21,0,[]],[26,"mut",[[22,["contributorId"]]],null]],[["value"],["target.value"]]],null],[8],[0,"\\n "],[6,"option"],[10,"value",""],[10,"selected",""],[10,"disabled",""],[10,"hidden",""],[8],[0,"Contributor"],[9],[0,"\\n"],[4,"each",[[22,["contributors"]]],null,{"statements":[[0," "],[6,"option"],[11,"value",[21,1,["id"]],null],[11,"selected",[26,"eq",[[22,["contributorId"]],[21,1,["id"]]],null],null],[8],[1,[21,1,["github_username"]],false],[9],[0,"\\n"]],"parameters":[1]},null],[0," "],[9],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[6,"select"],[10,"required",""],[11,"onchange",[26,"action",[[21,0,[]],[26,"mut",[[22,["kind"]]],null]],[["value"],["target.value"]]],null],[8],[0,"\\n "],[6,"option"],[10,"value","community"],[11,"selected",[26,"eq",[[22,["kind"]],"community"],null],null],[8],[0,"Community"],[9],[0,"\\n "],[6,"option"],[10,"value","design"],[11,"selected",[26,"eq",[[22,["kind"]],"design"],null],null],[8],[0,"Design"],[9],[0,"\\n "],[6,"option"],[10,"value","dev"],[11,"selected",[26,"eq",[[22,["kind"]],"dev"],null],null],[8],[0,"Development"],[9],[0,"\\n "],[6,"option"],[10,"value","docs"],[11,"selected",[26,"eq",[[22,["kind"]],"docs"],null],null],[8],[0,"Documentation"],[9],[0,"\\n "],[6,"option"],[10,"value","ops"],[11,"selected",[26,"eq",[[22,["kind"]],"ops"],null],null],[8],[0,"IT Operations"],[9],[0,"\\n "],[9],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[1,[26,"input",null,[["type","placeholder","value","class"],["text","100",[22,["amount"]],[26,"if",[[22,["isValidAmount"]],"valid",""],null]]]],false],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[1,[26,"input",null,[["type","placeholder","value","class"],["text","Description",[22,["description"]],[26,"if",[[22,["isValidDescription"]],"valid",""],null]]]],false],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[1,[26,"input",null,[["type","placeholder","value","class"],["text","URL (optional)",[22,["url"]],[26,"if",[[22,["isValidUrl"]],"valid",""],null]]]],false],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[10,"class","actions"],[8],[0,"\\n "],[1,[26,"input",null,[["type","disabled","value"],["submit",[26,"is-pending",[[22,["inProgress"]]],null],[26,"if",[[26,"is-pending",[[22,["inProgress"]]],null],"Processing","Save"],null]]]],false],[0,"\\n "],[4,"link-to",["index"],null,{"statements":[[0,"Back"]],"parameters":[]},null],[0,"\\n "],[9],[0,"\\n"],[9],[0,"\\n\\n"]],"hasEval":false}',meta:{moduleName:"kredits-web/components/add-proposal/template.hbs"}})}),define("kredits-web/components/contributor-list/component",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Component.extend({tagName:"table",classNames:"contributor-list",selectedContributor:null,actions:{toggleContributorInfo:function(e){e.get("showMetadata")?e.set("showMetadata",!1):(this.contributors.setEach("showMetadata",!1),e.set("showMetadata",!0))}}})}),define("kredits-web/components/contributor-list/template",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"1c6etkaE",block:'{"symbols":["contributor"],"statements":[[6,"tbody"],[8],[0,"\\n"],[4,"each",[[22,["contributors"]]],null,{"statements":[[0," "],[6,"tr"],[11,"class",[27,[[26,"if",[[21,1,["isCurrentUser"]],"current-user"],null]]]],[3,"action",[[21,0,[]],"toggleContributorInfo",[21,1,[]]]],[8],[0,"\\n "],[6,"td"],[10,"class","person"],[8],[0,"\\n "],[6,"img"],[10,"class","avatar"],[11,"src",[21,1,["avatarURL"]],null],[8],[9],[0,"\\n "],[1,[21,1,["name"]],false],[0,"\\n "],[9],[0,"\\n "],[6,"td"],[10,"class","kredits"],[8],[0,"\\n "],[6,"span"],[10,"class","amount"],[8],[1,[21,1,["balance"]],false],[9],[0,"\\n "],[6,"span"],[10,"class","symbol"],[8],[0,"₭S"],[9],[0,"\\n "],[9],[0,"\\n "],[9],[0,"\\n "],[6,"tr"],[11,"class",[27,["metadata ",[26,"if",[[21,1,["isCurrentUser"]],"current-user"],null]," ",[26,"if",[[21,1,["showMetadata"]],"visible"],null]]]],[8],[0,"\\n "],[6,"td"],[10,"colspan","2"],[8],[0,"\\n "],[6,"ul"],[8],[0,"\\n "],[6,"li"],[8],[6,"a"],[11,"href",[27,["https://testnet.etherscan.io/address/",[21,1,["account"]]]]],[8],[0,"Inspect Ethereum transactions"],[9],[9],[0,"\\n"],[4,"if",[[21,1,["ipfsHash"]]],null,{"statements":[[0," "],[6,"li"],[8],[6,"a"],[11,"href",[27,["https://ipfs.io/ipfs/",[21,1,[Line truncated
return this.kredits.addContributor(e).then(function(e){return t.contributors.pushObject(e),e})}}})}),define("kredits-web/controllers/proposals/new",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Controller.extend({kredits:Ember.inject.service(),contributors:Ember.computed.alias("kredits.contributors"),minedContributors:Ember.computed.filterBy("contributors","id"),actions:{save:function(e){var t=this,n=this.contributors.findBy("id",e.contributorId)
return e.contributorIpfsHash=n.get("ipfsHash"),this.kredits.addProposal(e).then(function(e){return t.transitionToRoute("index"),e})}}})}),define("kredits-web/helpers/and",["exports","ember-truth-helpers/helpers/and"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"and",{enumerable:!0,get:function(){return t.and}})}),define("kredits-web/helpers/app-version",["exports","kredits-web/config/environment","ember-cli-app-version/utils/regexp"],function(e,t,n){Object.defineProperty(e,"__esModule",{value:!0}),e.appVersion=o
var r=t.default.APP.version
function o(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}
return t.hideSha?r.match(n.versionRegExp)[0]:t.hideVersion?r.match(n.shaRegExp)[0]:r}e.default=Ember.Helper.helper(o)}),define("kredits-web/helpers/await",["exports","ember-promise-helpers/helpers/await"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("kredits-web/helpers/eq",["exports","ember-truth-helpers/helpers/equal"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"equal",{enumerable:!0,get:function(){return t.equal}})}),define("kredits-web/helpers/gt",["exports","ember-truth-helpers/helpers/gt"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"gt",{enumerable:!0,get:function(){return t.gt}})}),define("kredits-web/helpers/gte",["exports","ember-truth-helpers/helpers/gte"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"gte",{enumerable:!0,get:function(){return t.gte}})}),define("kredits-web/helpers/is-array",["exports","ember-truth-helpers/helpers/is-array"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"isArray",{enumerable:!0,get:function(){return t.isArray}})}),define("kredits-web/helpers/is-equal",["exports","ember-truth-helpers/helpers/is-equal"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"isEqual",{enumerable:!0,get:function(){return t.isEqual}})}),define("kredits-web/helpers/is-fulfilled",["exports","ember-promise-helpers/helpers/is-fulfilled"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"isFulfilled",{enumerable:!0,get:function(){return t.isFulfilled}})}),define("kredits-web/helpers/is-pending",["exports","ember-promise-helpers/helpers/is-pending"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"isPending",{enumerable:!0,get:function(){return t.isPending}})}),define("kredits-web/helpers/is-rejected",["exports","ember-promise-helpers/helpers/is-rejected"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"isRejected",{enumerable:!0,get:function(){return t.isRejected}})}),define("kredits-web/helpers/lt",["exports","ember-truth-helpers/helpers/lt"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"lt",{enumerable:!0,get:function(){return t.lt}})}),define("kredits-web/helpers/lte",["exports","ember-truth-helpers/helpers/lte"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"lte",{enumerable:!0,get:function(){return t.lte}})}),define("kredits-web/helpers/not-eq",["exports","ember-truth-helpers/helpers/not-equal"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"notEq",{enumerable:!0,get:function(){return t.notEq}})}),define("kredits-web/helpers/not",["exports","ember-truth-helpers/helpers/not"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"not",{enumerable:!0,get:function(){return t.not}})}),define("kredits-web/helpers/or",["exports","ember-truth-helpers/helpers/or"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"or",{enumerable:!0,get:function(){return t.or}})})
define("kredits-web/helpers/promise-all",["exports","ember-promise-helpers/helpers/promise-all"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"promiseAll",{enumerable:!0,get:function(){return t.promiseAll}})}),define("kredits-web/helpers/promise-hash",["exports","ember-promise-helpers/helpers/promise-hash"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"promiseHash",{enumerable:!0,get:function(){return t.promiseHash}})}),define("kredits-web/helpers/promise-rejected-reason",["exports","ember-promise-helpers/helpers/promise-rejected-reason"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("kredits-web/helpers/xor",["exports","ember-truth-helpers/helpers/xor"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"xor",{enumerable:!0,get:function(){return t.xor}})}),define("kredits-web/initializers/app-version",["exports","ember-cli-app-version/initializer-factory","kredits-web/config/environment"],function(e,t,n){Object.defineProperty(e,"__esModule",{value:!0})
var r=void 0,o=void 0
n.default.APP&&(r=n.default.APP.name,o=n.default.APP.version),e.default={name:"App Version",initialize:(0,t.default)(r,o)}}),define("kredits-web/initializers/container-debug-adapter",["exports","ember-resolver/resolvers/classic/container-debug-adapter"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default={name:"container-debug-adapter",initialize:function(){var e=arguments[1]||arguments[0]
e.register("container-debug-adapter:main",t.default),e.inject("container-debug-adapter:main","namespace","application:main")}}}),define("kredits-web/initializers/export-application-global",["exports","kredits-web/config/environment"],function(e,t){function n(){var e=arguments[1]||arguments[0]
if(!1!==t.default.exportApplicationGlobal){var n
if("undefined"!=typeof window)n=window
else if("undefined"!=typeof global)n=global
else{if("undefined"==typeof self)return
n=self}var r,o=t.default.exportApplicationGlobal
r="string"==typeof o?o:Ember.String.classify(t.default.modulePrefix),n[r]||(n[r]=e,e.reopen({willDestroy:function(){this._super.apply(this,arguments),delete n[r]}}))}}Object.defineProperty(e,"__esModule",{value:!0}),e.initialize=n,e.default={name:"export-application-global",initialize:n}}),define("kredits-web/models/contributor",["exports","kredits-web/utils/cps/bignumber"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Object.extend({id:(0,t.default)("idRaw","toString"),account:null,balance:(0,t.default)("balanceRaw","toNumber"),isCore:!1,ipfsHash:null,kind:null,name:null,url:null,github_username:null,github_uid:null,wiki_username:null,ipfsData:"",isCurrentUser:!1,avatarURL:Ember.computed("github_uid",function(){var e=this.github_uid
if(e)return"https://avatars2.githubusercontent.com/u/"+e+"?v=3&s=128"})})}),define("kredits-web/models/proposal",["exports","kredits-web/utils/cps/bignumber"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Object.extend({id:(0,t.default)("idRaw","toString"),creatorAccount:null,contributorId:(0,t.default)("contributorIdRaw","toString"),amount:(0,t.default)("amountRaw","toNumber"),votesCount:(0,t.default)("votesCountRaw","toNumber"),votesNeeded:(0,t.default)("votesNeededRaw","toNumber"),executed:null,ipfsHash:null,isExecuted:Ember.computed.alias("executed"),kind:null,description:null,details:{},url:null,ipfsData:""})}),define("kredits-web/resolver",["exports","ember-resolver"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=t.default}),define("kredits-web/router",["exports","kredits-web/config/environment"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0})
var n=Ember.Router.extend({location:t.default.locationType,rootURL:t.default.rootURL})
n.map(function(){this.route("spinner"),this.route("proposals",function(){this.route("new")})}),e.default=n}),define("kredits-web/routes/application",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Route.extend({kredits:Ember.inject.service(),beforeModel:function(e){var t=this.kredits
return t.setup().then(function(){t.get("accountNeedsUnlock")&&confirm("It looks like you have an Ethereum wallet available. Please unlock your account.")&&e.retry()}).catch(function(e){console.log("Error initializing Kredits",e)})},afterModel:function(){var e=this
return this.kredits.loadContributorsAndProposals().then(function(){e.kredits.addContractEventHandlers()})}})}),define("kredits-web/routes/spinner",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Route.extend({})}),define("kredits-web/services/ajax",["exports","ember-ajax/services/ajax"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("kredits-web/services/kredits",["exports","npm:ethers","npm:kredits-contracts","kredits-web/config/environment","kredits-web/models/contributor","kredits-web/models/proposal"],function(e,t,n,r,o,s){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Service.extend({currentUserAccounts:null,currentUser:null,currentUserIsContributor:Ember.computed.notEmpty("currentUser"),currentUserIsCore:Ember.computed.alias("currentUser.isCore"),hasAccounts:Ember.computed.notEmpty("currentUserAccounts"),accountNeedsUnlock:Ember.computed("currentUserAccounts",function(){return this.currentUserAccounts&&Ember.isEmpty(this.currentUserAccounts)}),getEthProvider:function(){var e=this
return new Ember.RSVP.Promise(function(n){var o=void 0,s=void 0
void 0!==window.web3?(console.debug("[kredits] Using user-provided instance, e.g. from Mist browser or Metamask"),s=parseInt(window.web3.version.network),(o=new t.default.providers.Web3Provider(window.web3.currentProvider,{chainId:s})).listAccounts().then(function(t){e.set("currentUserAccounts",t),n(o)})):(console.debug("[kredits] Creating new instance from npm module class"),s=parseInt(r.default.contractMetadata.networkId),o=new t.default.providers.JsonRpcProvider(r.default.web3ProviderUrl,{chainId:s}),n(o))})},setup:function(){var e=this
return this.getEthProvider().then(function(t){var r=void 0
return t.getSigner&&(r=t.getSigner()),new n.default(t,r).init().then(function(t){return e.set("kredits",t),e.currentUserAccounts&&e.currentUserAccounts.length>0&&e.getCurrentUser.then(function(t){e.set("currentUser",t)}),t})})},totalSupply:Ember.computed(function(){return this.kredits.Token.functions.totalSupply()}),contributors:[],proposals:[],loadContributorsAndProposals:function(){var e=this
return this.getContributors().then(function(t){return e.contributors.pushObjects(t)}).then(function(){return e.getProposals()}).then(function(t){return e.proposals.pushObjects(t)})},addContributor:function(e){return console.debug("[kredits] add contributor",e),this.kredits.Contributor.add(e).then(function(t){return console.debug("[kredits] add contributor response",t),o.default.create(e)})},getContributors:function(){return this.kredits.Contributor.all().then(function(e){return e.map(function(e){return o.default.create(e)})})},addProposal:function(e){var t=this
return console.debug("[kredits] add proposal",e),this.kredits.Operator.addProposal(e).then(function(n){return console.debug("[kredits] add proposal response",n),e.contributor=t.contributors.findBy("id",e.contributorId),s.default.create(e)})},getProposals:function(){var e=this
return this.kredits.Operator.all().then(function(t){return t.map(function(t){return t.contributor=e.contributors.findBy("id",t.contributorId.toString()),s.default.create(t)})})},vote:function(e){return console.debug("[kredits] vote for",e),this.kredits.Operator.functions.vote(e).then(function(e){return console.debug("[kredits] vote response",e),e})},getCurrentUser:Ember.computed("kredits.provider",function(){var e=this
return Ember.isEmpty(this.currentUserAccounts)?Ember.RSVP.resolve():this.kredits.Contributor.functions.getContributorIdByAddress(this.get("currentUserAccounts.firstObject")).then(function(t){return 0===(t=t.toNumber())?Ember.RSVP.resolve():e.kredits.Contributor.getById(t)})}),findProposalById:function(e){return this.proposals.findBy("id",e.toString())},addContractEventHandlers:function(){this.kredits.Operator.on("ProposalCreated",this.handleProposalCreated.bind(this)).on("ProposalVoted",this.handleProposalVoted.bind(this)).on("ProposalExecuted",this.handleProposalExecuted.bind(this)),this.kredits.Token.on("Transfer",this.handleTransfer.bind(this))},handleProposalCreated:function(e){var t=this
this.findProposalById(e)?console.debug("[events] proposal exists, not adding from event"):this.kredits.Operator.getById(e).then(function(e){e.contributor=t.contributors.findBy("id",e.contributorId.toString()),t.proposals.pushObject(s.default.create(e))})},handleProposalVoted:function(e,t,n){var r=this.findProposalById(e)
r&&r.set("votesCount",n)},handleProposalExecuted:function(e,t,n){var r=this.findProposalById(e)
r.get("isExecuted")?console.debug("[events] proposal already executed, not adding from event"):(r.set("executed",!0),this.contributors.findBy("id",t.toString()).incrementProperty("balance",n.toNumber()))},handleTransfer:function(e,t,n){n=n.toNumber(),this.contributors.findBy("address",e).decrementProperty("balance",n),this.contributors.findBy("address",t).incrementProperty("balance",n)}})}),define("kredits-web/templates/application",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"Lp1+Ni2p",block:'{"symbols":[],"statements":[[6,"main"],[8],[0,"\\n "],[1,[20,"outlet"],false],[0,"\\n"],[9],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"kredits-web/templates/application.hbs"}})}),define("kredits-web/templates/index",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"Vx25wHka",block:'{"symbols":[],"statements":[[4,"if",[[22,["kredits","hasAccounts"]]],null,{"statements":[[0," "],[6,"section"],[10,"id","user-account"],[8],[0,"\\n"],[4,"if",[[22,["kredits","currentUser"]]],null,{"statements":[[0," "],[1,[22,["kredits","currentUser","name"]],false],[0,"\\n"],[4,"if",[[22,["kredits","currentUserIsCore"]]],null,{"statements":[[0," (core)\\n"]],"parameters":[]},null],[0," Account: "],[1,[22,["kredits","currentUser","account"]],false],[0,"\\n"]],"parameters":[]},null],[0," "],[9],[0,"\\n"]],"parameters":[]},null],[0,"\\n"],[6,"section"],[10,"id","contributors"],[8],[0,"\\n "],[6,"header"],[8],[0,"\\n "],[6,"h2"],[8],[0,"Kosmos Contributors"],[9],[0,"\\n "],[9],[0,"\\n "],[6,"div"],[10,"class","content"],[8],[0,"\\n "],[1,[26,"contributor-list",null,[["contributors"],[[22,["contributorsSorted"]]]]],false],[0,"\\n\\n "],[6,"p"],[10,"class","stats"],[8],[0,"\\n "],[6,"span"],[10,"class","number"],[8],[1,[26,"await",[[22,["kredits","totalSupply"]]],null],false],[9],[0," kredits issued and distributed among\\n "],[6,"span"],[10,"class","number"],[8],[1,[22,["contributorsWithKredits","length"]],false],[9],[0," contributors.\\n "],[9],[0,"\\n "],[9],[0,"\\n"],[9],[0,"\\n\\n"],[4,"if",[[22,["proposalsOpen"]]],null,{"statements":[[0," "],[6,"section"],[10,"id","proposals-open"],[8],[0,"\\n "],[6,"header"],[8],[0,"\\n "],[6,"h2"],[8],[0,"Open Proposals"],[9],[0,"\\n "],[9],[0,"\\n "],[6,"div"],[10,"class","content"],[8],[0,"\\n"],[0," "],[1,[26,"proposal-list",null,[["proposals","confirmProposal","contractInteractionEnabled"],[[22,["proposalsOpenSorted"]],[26,"action",[[21,0,[]],"confirmProposal"],null],[22,["kredits","hasAccounts"]]]]],false],[0,"\\n\\n"],[4,"if",[[22,["kredits","hasAccounts"]]],null,{"statements":[[0," "],[6,"p"],[10,"class","actions"],[8],[0,"\\n "],[4,"link-to",["proposals.new"],null,{"statements":[[0,"Create new proposal"]],"parameters":[]},null],[0,"\\n "],[9],[0,"\\n"]],"parameters":[]},null],[0," "],[9],[0,"\\n "],[9],[0,"\\n"]],"parameters":[]},null],[0,"\\n"],[6,"section"],[10,"id","proposals-closed"],[8],[0,"\\n "],[6,"header"],[8],[0,"\\n "],[6,"h2"],[8],[0,"Closed Proposals"],[9],[0,"\\n "],[9],[0,"\\n "],[6,"div"],[10,"class","content"],[8],[0,"\\n "],[1,[26,"proposal-list",null,[["proposals","confirmProposal"],[[22,["proposalsClosedSorted"]],[26,"action",[[21,0,[]],"confirmProposal"],null]]]],false],[0,"\\n\\n"],[4,"if",[[22,["kredits","hasAccounts"]]],null,{"statements":[[0," "],[6,"p"],[10,"class","actions"],[8],[0,"\\n "],[4,"link-to",["proposals.new"],null,{"statements":[[0,"Create new proposal"]],"parameters":[]},null],[0,"\\n "],[9],[0,"\\n"]],"parameters":[]},null],[0," "],[9],[0,"\\n"],[9],[0,"\\n\\n"],[6,"section"],[10,"id","add-contributor"],[8],[0,"\\n "],[6,"header"],[8],[0,"\\n "],[6,"h2"],[8],[0,"Add Contributor"],[9],[0,"\\n "],[9],[0,"\\n\\n "],[6,"div"],[10,"class","content"],[8],[0,"\\n"],[4,"if",[[22,["kredits","currentUser","isCore"]]],null,{"statements":[[0," "],[1,[26,"add-contributor",null,[["contributors","save"],[[22,["contributors"]],[26,"action",[[21,0,[]],"save"],null]]]],false],[0,"\\n"]],"parameters":[]},{"statements":[[0," Only core team members can add new contributors. Please ask someone to set you up.\\n"]],"parameters":[]}],[0," "],[9],[0,"\\n"],[9],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"kredits-web/templates/index.hbs"}})}),define("kredits-web/templates/loading",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"mH9O+n3h",block:'{"symbols":[],"statements":[[1,[20,"loading-spinner"],false],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"kredits-web/templates/loading.hbs"}})}),define("kredits-web/templates/proposals/new",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"AndvFYbw",block:'{"symbols":[],"statements":[[6,"section"],[10,"id","add-proposal"],[8],[0,"\\n "],[6,"headerLine truncated
return r&&t.default.utils.isBigNumber(r)?r[n]():r},set:function(r,o){return o=t.default.utils.bigNumberify(o),this.set(e,o),o[n]()}})}}),define("kredits-web/config/environment",[],function(){try{var e="kredits-web/config/environment",t=document.querySelector('meta[name="'+e+'"]').getAttribute("content"),n={default:JSON.parse(unescape(t))}
return Object.defineProperty(n,"__esModule",{value:!0}),n}catch(t){throw new Error('Could not read config from meta tag with name "'+e+'".')}}),runningTests||require("kredits-web/app").default.create({name:"kredits-web",version:"1.0.0+d070288e"})
//# sourceMappingURL=kredits-web-2ed17443aa6fc1b1eac2fd0c4cd6f36d.map
@@ -0,0 +1,158 @@
"use strict"
define("kredits-web/app",["exports","kredits-web/resolver","ember-load-initializers","kredits-web/config/environment"],function(e,t,n,r){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
var i=Ember.Application.extend({modulePrefix:r.default.modulePrefix,podModulePrefix:r.default.podModulePrefix,Resolver:t.default});(0,n.default)(i,r.default.modulePrefix)
var o=i
e.default=o}),define("kredits-web/components/add-contributor/component",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
var t=Ember.Component.extend({kredits:Ember.inject.service(),attributes:null,isValidAccount:Ember.computed.notEmpty("account"),isValidName:Ember.computed.notEmpty("name"),isValidURL:Ember.computed.notEmpty("url"),isValidGithubUID:Ember.computed.notEmpty("github_uid"),isValidGithubUsername:Ember.computed.notEmpty("github_username"),isValidGiteaUsername:Ember.computed.notEmpty("gitea_username"),isValidWikiUsername:Ember.computed.notEmpty("wiki_username"),isValid:Ember.computed.and("isValidAccount","isValidName","isValidGithubUID"),inProgress:!1,init:function(){this._super.apply(this,arguments),this.set("attributes",{account:null,name:null,kind:"person",url:null,github_username:null,github_uid:null,gitea_username:null,wiki_username:null})},didInsertElement:function(){this._super.apply(this,arguments),this.reset()},reset:function(){this.setProperties(this.attributes)},actions:{submit:function(){var e=this
if(this.isValid){var t=Object.keys(this.attributes),n=this.getProperties(t)
this.set("inProgress",!0),this.save(n).then(function(){e.reset(),window.scroll(0,0)}).catch(function(e){console.log(e),window.alert("Something went wrong. Please check the browser console.")}).finally(function(){e.set("inProgress",!1)})}else alert("Invalid data. Please review and try again.")}}})
e.default=t}),define("kredits-web/components/add-contributor/template",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
var t=Ember.HTMLBars.template({id:"tTvY+kme",block:'{"symbols":[],"statements":[[7,"form"],[9],[0,"\\n "],[7,"p"],[9],[0,"\\n "],[1,[27,"input",null,[["name","type","placeholder","value","class"],["account","text","0xF18E631Ea191aE4ebE70046Fcb01a436554421BA4",[23,["account"]],[27,"if",[[23,["isValidAccount"]],"valid",""],null]]]],false],[0,"\\n "],[10],[0,"\\n "],[7,"p"],[9],[0,"\\n "],[7,"select"],[11,"required",""],[12,"onchange",[27,"action",[[22,0,[]],[27,"mut",[[23,["kind"]]],null]],[["value"],["target.value"]]]],[9],[0,"\\n "],[7,"option"],[11,"value","person"],[12,"selected",[27,"eq",[[23,["kind"]],"person"],null]],[9],[0,"Person"],[10],[0,"\\n "],[7,"option"],[11,"value","organization"],[12,"selected",[27,"eq",[[23,["kind"]],"organization"],null]],[9],[0,"Organization"],[10],[0,"\\n "],[10],[0,"\\n "],[10],[0,"\\n "],[7,"p"],[9],[0,"\\n "],[1,[27,"input",null,[["name","type","placeholder","value","class"],["name","text","Name",[23,["name"]],[27,"if",[[23,["isValidName"]],"valid",""],null]]]],false],[0,"\\n "],[10],[0,"\\n "],[7,"p"],[9],[0,"\\n "],[1,[27,"input",null,[["name","type","placeholder","value","class"],["url","text","URL",[23,["url"]],[27,"if",[[23,["isValidURL"]],"valid",""],null]]]],false],[0,"\\n "],[10],[0,"\\n "],[7,"p"],[9],[0,"\\n "],[1,[27,"input",null,[["name","type","placeholder","value","class"],["github_uid","text","GitHub UID (123)",[23,["github_uid"]],[27,"if",[[23,["isValidGithubUID"]],"valid",""],null]]]],false],[0,"\\n "],[10],[0,"\\n "],[7,"p"],[9],[0,"\\n "],[1,[27,"input",null,[["name","type","placeholder","value","class"],["github_username","text","GitHub username",[23,["github_username"]],[27,"if",[[23,["isValidGithubUsername"]],"valid",""],null]]]],false],[0,"\\n "],[10],[0,"\\n "],[7,"p"],[9],[0,"\\n "],[1,[27,"input",null,[["name","type","placeholder","value","class"],["gitea_username","text","Gitea username",[23,["gitea_username"]],[27,"if",[[23,["isValidGiteaUsername"]],"valid",""],null]]]],false],[0,"\\n "],[10],[0,"\\n "],[7,"p"],[9],[0,"\\n "],[1,[27,"input",null,[["name","type","placeholder","value","class"],["wiki_username","text","Wiki Username",[23,["wiki_username"]],[27,"if",[[23,["isValidWikiUsername"]],"valid",""],null]]]],false],[0,"\\n "],[10],[0,"\\n "],[7,"p"],[11,"class","actions"],[9],[0,"\\n "],[1,[27,"input",null,[["type","disabled","value"],["submit",[23,["inProgress"]],[27,"if",[[23,["inProgress"]],"Processing","Save"],null]]]],false],[0,"\\n "],[10],[0,"\\n"],[3,"action",[[22,0,[]],"submit"],[["on"],["submit"]]],[10],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"kredits-web/components/add-contributor/template.hbs"}})
e.default=t}),define("kredits-web/components/add-proposal/component",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
var t=Ember.Component.extend({attributes:null,contributors:Object.freeze([]),isValidContributor:Ember.computed.notEmpty("contributorId"),isValidAmount:Ember.computed("amount",function(){return parseInt(this.amount,10)>0}),isValidDescription:Ember.computed.notEmpty("description"),isValidUrl:Ember.computed.notEmpty("url"),isValid:Ember.computed.and("isValidContributor","isValidAmount","isValidDescription"),init:function(){this._super.apply(this,arguments),this.set("attributes",{contributorId:null,kind:"community",amount:null,description:null,url:null})},didInsertElement:function(){this._super.apply(this,arguments),this.reset()},reset:function(){this.setProperties(this.attributes)},actions:{submit:function(){var e=this
if(this.isValid){var t=Object.keys(this.attributes),n=this.getProperties(t),r=this.save(n)
this.set("inProgress",r),r.then(function(){e.reset(),window.scroll(0,0),window.alert("Proposal added.")})}else alert("Invalid data. Please review and try again.")}}})
e.default=t}),define("kredits-web/components/add-proposal/template",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
var t=Ember.HTMLBars.template({id:"3DOgBCvD",block:'{"symbols":["contributor"],"statements":[[7,"form"],[9],[0,"\\n "],[7,"p"],[9],[0,"\\n "],[7,"select"],[11,"required",""],[12,"onchange",[27,"action",[[22,0,[]],[27,"mut",[[23,["contributorId"]]],null]],[["value"],["target.value"]]]],[9],[0,"\\n "],[7,"option"],[11,"value",""],[11,"selected",""],[11,"disabled",""],[11,"hidden",""],[9],[0,"Contributor"],[10],[0,"\\n"],[4,"each",[[23,["contributors"]]],null,{"statements":[[0," "],[7,"option"],[12,"value",[22,1,["id"]]],[12,"selected",[27,"eq",[[23,["contributorId"]],[22,1,["id"]]],null]],[9],[1,[22,1,["github_username"]],false],[10],[0,"\\n"]],"parameters":[1]},null],[0," "],[10],[0,"\\n "],[10],[0,"\\n "],[7,"p"],[9],[0,"\\n "],[7,"select"],[11,"required",""],[12,"onchange",[27,"action",[[22,0,[]],[27,"mut",[[23,["kind"]]],null]],[["value"],["target.value"]]]],[9],[0,"\\n "],[7,"option"],[11,"value","community"],[12,"selected",[27,"eq",[[23,["kind"]],"community"],null]],[9],[0,"Community"],[10],[0,"\\n "],[7,"option"],[11,"value","design"],[12,"selected",[27,"eq",[[23,["kind"]],"design"],null]],[9],[0,"Design"],[10],[0,"\\n "],[7,"option"],[11,"value","dev"],[12,"selected",[27,"eq",[[23,["kind"]],"dev"],null]],[9],[0,"Development"],[10],[0,"\\n "],[7,"option"],[11,"value","docs"],[12,"selected",[27,"eq",[[23,["kind"]],"docs"],null]],[9],[0,"Documentation"],[10],[0,"\\n "],[7,"option"],[11,"value","ops"],[12,"selected",[27,"eq",[[23,["kind"]],"ops"],null]],[9],[0,"IT Operations"],[10],[0,"\\n "],[10],[0,"\\n "],[10],[0,"\\n "],[7,"p"],[9],[0,"\\n "],[1,[27,"input",null,[["type","placeholder","value","class"],["text","100",[23,["amount"]],[27,"if",[[23,["isValidAmount"]],"valid",""],null]]]],false],[0,"\\n "],[10],[0,"\\n "],[7,"p"],[9],[0,"\\n "],[1,[27,"input",null,[["type","placeholder","value","class"],["text","Description",[23,["description"]],[27,"if",[[23,["isValidDescription"]],"valid",""],null]]]],false],[0,"\\n "],[10],[0,"\\n "],[7,"p"],[9],[0,"\\n "],[1,[27,"input",null,[["type","placeholder","value","class"],["text","URL (optional)",[23,["url"]],[27,"if",[[23,["isValidUrl"]],"valid",""],null]]]],false],[0,"\\n "],[10],[0,"\\n "],[7,"p"],[11,"class","actions"],[9],[0,"\\n "],[1,[27,"input",null,[["type","disabled","value"],["submit",[27,"is-pending",[[23,["inProgress"]]],null],[27,"if",[[27,"is-pending",[[23,["inProgress"]]],null],"Processing","Save"],null]]]],false],[0,"\\n "],[4,"link-to",["index"],null,{"statements":[[0,"Back"]],"parameters":[]},null],[0,"\\n "],[10],[0,"\\n"],[3,"action",[[22,0,[]],"submit"],[["on"],["submit"]]],[10],[0,"\\n\\n"]],"hasEval":false}',meta:{moduleName:"kredits-web/components/add-proposal/template.hbs"}})
e.default=t}),define("kredits-web/components/chart-contributions-by-type/component",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
var t="#fb6868",n="#fbe468",r="#e068fb",i="#97fb68",o="#8f68fb",s=Ember.Component.extend({contributions:null,chartOptions:Object.freeze({legend:{display:!1}}),chartData:Ember.computed("contributions",function(){var e=this.contributions.map(function(e){return{kind:e.kind,amount:e.amount}}).reduce(function(e,t){return t.kind in e?e[t.kind]=e[t.kind]+t.amount:e[t.kind]=t.amount,e},{})
return{datasets:[{data:[e.community,e.design,e.dev,e.ops,e.docs],borderColor:[t,n,r,o,i],borderWidth:1}],labels:["Community","Design","Development","Operations & Infrastructure","Documentation"]}})})
e.default=s}),define("kredits-web/components/chart-contributions-by-type/template",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
var t=Ember.HTMLBars.template({id:"knNRD8x3",block:'{"symbols":[],"statements":[[7,"div"],[11,"class","chart"],[9],[0,"\\n "],[1,[27,"ember-chart",null,[["type","data","options","width","height"],["doughnut",[23,["chartData"]],[23,["chartOptions"]],200,200]]],false],[0,"\\n"],[10]],"hasEval":false}',meta:{moduleName:"kredits-web/components/chart-contributions-by-type/template.hbs"}})
e.default=t}),define("kredits-web/components/contribution-list/component",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
var t=Ember.Component.extend({tagName:"ul",classNames:["contribution-list"],actions:{veto:function(e){this.contractInteractionEnabled?this.vetoContribution(e):window.alert("Only members can veto contributions. Please ask someone to set you up.")}}})
e.default=t}),define("kredits-web/components/contribution-list/template",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
var t=Ember.HTMLBars.template({id:"xYW3ZUYB",block:'{"symbols":["contribution"],"statements":[[4,"each",[[23,["contributions"]]],null,{"statements":[[0," "],[7,"li"],[12,"data-contribution-id",[22,1,["id"]]],[12,"class",[28,[[27,"contribution-status",[[22,1,[]]],null]," ",[27,"if",[[22,1,["vetoed"]],"vetoed"],null]]]],[9],[0,"\\n "],[7,"p"],[11,"class","meta"],[9],[0,"\\n "],[7,"span"],[11,"class","recipient"],[9],[1,[27,"user-avatar",null,[["contributor"],[[22,1,["contributor"]]]]],false],[10],[0,"\\n "],[7,"span"],[12,"class",[28,["category ",[22,1,["kind"]]]]],[9],[0,"("],[1,[22,1,["kind"]],false],[0,")"],[10],[0,"\\n "],[7,"span"],[11,"class","title"],[9],[0,"\\n"],[4,"if",[[22,1,["url"]]],null,{"statements":[[0," "],[7,"a"],[12,"href",[22,1,["url"]]],[11,"target","_blank"],[11,"rel","noopener"],[9],[1,[22,1,["description"]],false],[10],[0,"\\n"]],"parameters":[]},{"statements":[[0," "],[1,[22,1,["description"]],false],[0,"\\n"]],"parameters":[]}],[0," "],[10],[0,"\\n "],[10],[0,"\\n "],[7,"p"],[11,"class","kredits-amount"],[9],[0,"\\n "],[7,"span"],[11,"class","amount"],[9],[1,[22,1,["amount"]],false],[10],[7,"span"],[11,"class","symbol"],[9],[0,"₭S"],[10],[0,"\\n "],[10],[0,"\\n"],[4,"unless",[[22,1,["vetoed"]]],null,{"statements":[[4,"unless",[[27,"is-confirmed-contribution",[[22,1,[]]],null]],null,{"statements":[[0," "],[7,"p"],[11,"class","voting"],[9],[0,"\\n "],[7,"button"],[11,"class","small danger"],[9],[0,"veto"],[3,"action",[[22,0,[]],"veto",[22,1,["id"]]]],[10],[0,"\\n "],[10],[0,"\\n"]],"parameters":[]},null]],"parameters":[]},null],[0," "],[10],[0,"\\n"]],"parameters":[1]},null]],"hasEval":false}',meta:{moduleName:"kredits-web/components/contribution-list/template.hbs"}})
e.default=t}),define("kredits-web/components/contributor-list/component",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
var t=Ember.Component.extend({tagName:"table",classNames:"contributor-list",selectedContributor:null,actions:{toggleContributorInfo:function(e){e.showMetadata?e.set("showMetadata",!1):(this.contributorList.setEach("showMetadata",!1),e.set("showMetadata",!0))}}})
e.default=t}),define("kredits-web/components/contributor-list/template",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
var t=Ember.HTMLBars.template({id:"TJ50ruBI",block:'{"symbols":["c"],"statements":[[7,"tbody"],[9],[0,"\\n"],[4,"each",[[23,["contributorList"]]],null,{"statements":[[0," "],[7,"tr"],[11,"role","button"],[12,"class",[27,"if",[[27,"is-current-user",[[22,1,["contributor"]]],null],"current-user"],null]],[9],[0,"\\n "],[7,"td"],[11,"class","person"],[9],[0,"\\n "],[1,[27,"user-avatar",null,[["contributor"],[[22,1,["contributor"]]]]],false],[0," "],[1,[22,1,["contributor","name"]],false],[0,"\\n "],[10],[0,"\\n "],[7,"td"],[11,"class","kredits"],[9],[0,"\\n "],[7,"span"],[11,"class","amount"],[9],[0,"\\n"],[4,"if",[[23,["showUnconfirmedKredits"]]],null,{"statements":[[0," "],[1,[22,1,["amountTotal"]],false],[0,"\\n"]],"parameters":[]},{"statements":[[0," "],[1,[22,1,["amountConfirmed"]],false],[0,"\\n"]],"parameters":[]}],[0," "],[10],[0,"\\n "],[7,"span"],[11,"class","symbol"],[9],[0,"₭S"],[10],[0,"\\n "],[10],[0,"\\n "],[3,"action",[[22,0,[]],"toggleContributorInfo",[22,1,[]]]],[10],[0,"\\n "],[7,"tr"],[12,"class",[28,["metadata ",[27,"if",[[27,"is-current-user",[[22,1,["contributor"]]],null],"current-user"],null]," ",[27,"if",[[22,1,["showMetadata"]],"visible"],null]]]],[9],[0,"\\n "],[7,"td"],[11,"colspan","2"],[9],[0,"\\n "],[7,"ul"],[9],[0,"\\n "],[7,"li"],[9],[0,"\\n "],[7,"a"],[12,"href",[28,["https://rinkeby.etherscan.io/address/",[22,1,["contributor","account"]]]]],[11,"target","_blank"],[11,"rel","noopener"],[9],[0,"Inspect Ethereum transactions"],[10],[0,"\\n "],[10],[0,"\\n"],[4,"if",[[22,1,["contributor","ipfsHash"]]],null,{"statements":[[0," "],[7,"li"],[9],[0,"\\n "],[7,"a"],[12,"href",[28,["https://ipfs.io/ipfs/",[22,1,["contributor","ipfsHash"]]]]],[11,"target","_blank"],[11,"rel","noopener"],[9],[0,"Inspect IPFS profile"],[10],[0,"\\n "],[10],[0,"\\n"]],"parameters":[]},null],[0," "],[10],[0,"\\n"],[4,"if",[[22,1,["showMetadata"]]],null,{"statements":[[0," "],[7,"pre"],[9],[1,[22,1,["contributor","ipfsData"]],false],[10],[0,""]],"parameters":[]},null],[0," "],[10],[0,"\\n "],[10],[0,"\\n"]],"parameters":[1]},null],[10],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"kredits-web/components/contributor-list/template.hbs"}})
e.default=t}),define("kredits-web/components/ember-chart",["exports","ember-cli-chart/components/ember-chart"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
var n=t.default
e.default=n}),define("kredits-web/components/loading-spinner/component",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
var t=Ember.Component.extend({classNames:["loading-spinner"]})
e.default=t}),define("kredits-web/components/loading-spinner/template",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
var t=Ember.HTMLBars.template({id:"b6SWTOaj",block:'{"symbols":[],"statements":[[7,"p"],[9],[0,"\\n "],[7,"svg"],[11,"xmlns","http://www.w3.org/2000/svg","http://www.w3.org/2000/xmlns/"],[11,"xmlns:xlink","http://www.w3.org/1999/xlink","http://www.w3.org/2000/xmlns/"],[11,"version","1.1"],[11,"x","0px"],[11,"y","0px"],[11,"viewBox","0 0 132 100"],[11,"enable-background","new 0 0 100 100"],[11,"xml:space","preserve","http://www.w3.org/XML/1998/namespace"],[9],[0,"\\n "],[7,"path"],[11,"id","path-comet"],[11,"d","M79.062,24.173L79.062,24.173l-0.021-0.011c-0.068-0.03-0.137-0.062-0.204-0.093L42.392,7.337\\n c0,0,3.065,14.104,4.458,18.019l0,0c0,0-41.754-12.481-46.85-13.67c1.67,6.52,30.607,62.492,30.607,62.492\\n c5.848,11.873,19.394,18.485,33.522,18.485c19.811,0,35.87-16.059,35.87-35.869C100,42.313,91.418,29.837,79.062,24.173z"],[9],[0,"\\n "],[10],[0,"\\n "],[10],[0,"\\n"],[10],[0,"\\n"],[7,"p"],[9],[0,"\\n Loading data...\\n"],[10],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"kredits-web/components/loading-spinner/template.hbs"}})
e.default=t}),define("kredits-web/components/proposal-list/component",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
var t=Ember.Component.extend({tagName:"ul",classNames:["proposal-list"],actions:{confirm:function(e){this.contractInteractionEnabled?this.confirmProposal(e):window.alert("Only members can vote on proposals. Please ask someone to set you up.")}}})
e.default=t}),define("kredits-web/components/proposal-list/template",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
var t=Ember.HTMLBars.template({id:"pZHMSOZc",block:'{"symbols":["proposal"],"statements":[[4,"each",[[23,["proposals"]]],null,{"statements":[[0," "],[7,"li"],[12,"data-proposal-id",[22,1,["id"]]],[12,"class",[27,"if",[[22,1,["isExecuted"]],"confirmed","unconfirmed"],null]],[9],[0,"\\n "],[7,"p"],[11,"class","meta"],[9],[0,"\\n "],[7,"span"],[12,"class",[28,["category ",[22,1,["kind"]]]]],[9],[0,"♥ ("],[1,[22,1,["kind"]],false],[0,")"],[10],[0,"\\n "],[7,"span"],[11,"class","recipient"],[9],[1,[22,1,["contributor","name"]],false],[0,":"],[10],[0,"\\n "],[10],[0,"\\n "],[7,"p"],[11,"class","kredits-amount"],[9],[0,"\\n "],[7,"span"],[11,"class","amount"],[9],[1,[22,1,["amount"]],false],[10],[7,"span"],[11,"class","symbol"],[9],[0,"₭S"],[10],[0,"\\n "],[10],[0,"\\n "],[7,"p"],[11,"class","description"],[9],[0,"\\n "],[7,"span"],[11,"class","description"],[9],[1,[22,1,["description"]],false],[10],[0,"\\n "],[10],[0,"\\n "],[7,"p"],[11,"class","voting"],[9],[0,"\\n"],[4,"unless",[[22,1,["isExecuted"]]],null,{"statements":[[0," "],[7,"span"],[11,"class","votes"],[9],[0,"("],[1,[22,1,["votesCount"]],false],[0,"/"],[1,[22,1,["votesNeeded"]],false],[0," votes)"],[10],[0,"\\n "],[7,"button"],[9],[0,"+1"],[3,"action",[[22,0,[]],"confirm",[22,1,["id"]]]],[10],[0,"\\n"]],"parameters":[]},null],[0," "],[10],[0,"\\n "],[10],[0,"\\n"]],"parameters":[1]},null]],"hasEval":false}',meta:{moduleName:"kredits-web/components/proposal-list/template.hbs"}})
e.default=t}),define("kredits-web/components/user-avatar/component",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
var t=Ember.Component.extend({contributor:null,tagName:"img",classNames:["avatar"],attributeBindings:["src","title"],src:Ember.computed.alias("contributor.avatarURL"),title:Ember.computed.alias("contributor.name")})
e.default=t}),define("kredits-web/components/user-avatar/template",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
var t=Ember.HTMLBars.template({id:"rnnAjEgP",block:'{"symbols":[],"statements":[],"hasEval":false}',meta:{moduleName:"kredits-web/components/user-avatar/template.hbs"}})
e.default=t}),define("kredits-web/controllers/application",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
var t=Ember.Controller.extend({kredits:Ember.inject.service()})
e.default=t}),define("kredits-web/controllers/index",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
var t=Ember.Controller.extend({kredits:Ember.inject.service(),currentBlock:Ember.computed.alias("kredits.currentBlock"),contributions:Ember.computed.alias("kredits.contributions"),contributionsConfirmed:Ember.computed.alias("kredits.contributionsConfirmed"),contributionsUnconfirmed:Ember.computed.alias("kredits.contributionsUnconfirmed"),contributionsSorting:Object.freeze(["id:desc"]),contributionsUnconfirmedSorted:Ember.computed.sort("contributionsUnconfirmed","contributionsSorting"),contributionsConfirmedSorted:Ember.computed.sort("contributionsConfirmed","contributionsSorting"),kreditsByContributor:Ember.computed.alias("kredits.kreditsByContributor"),kreditsToplistSorting:Ember.computed("showUnconfirmedKredits",function(){return this.showUnconfirmedKredits?["amountTotal:desc"]:["amountConfirmed:desc"]}),kreditsToplist:Ember.computed.sort("kreditsByContributor","kreditsToplistSorting"),showUnconfirmedKredits:!0,hideUnconfirmedKredits:Ember.computed.not("showUnconfirmedKredits"),actions:{vetoContribution:function(e){this.kredits.veto(e).then(function(e){console.debug("[controllers:index] Veto submitted to Ethereum blockhain: "+e.hash)})},confirmProposal:function(e){this.kredits.vote(e).then(function(e){console.debug("[controllers:index] Vote submitted to Ethereum blockhain: "+e.hash)})},save:function(e){var t=this
return this.kredits.addContributor(e).then(function(e){return t.contributors.pushObject(e),e})}}})
e.default=t}),define("kredits-web/controllers/proposals/new",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
var t=Ember.Controller.extend({kredits:Ember.inject.service(),contributors:Ember.computed.alias("kredits.contributors"),minedContributors:Ember.computed.filterBy("contributors","id"),actions:{save:function(e){var t=this,n=this.contributors.findBy("id",e.contributorId)
return e.contributorIpfsHash=n.get("ipfsHash"),this.kredits.addProposal(e).then(function(e){return t.transitionToRoute("index"),e})}}})
e.default=t}),define("kredits-web/helpers/and",["exports","ember-truth-helpers/helpers/and"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"and",{enumerable:!0,get:function(){return t.and}})}),define("kredits-web/helpers/app-version",["exports","kredits-web/config/environment","ember-cli-app-version/utils/regexp"],function(e,t,n){function r(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=t.default.APP.version,o=r.versionOnly||r.hideSha,s=r.shaOnly||r.hideVersion,a=null
return o&&(r.showExtended&&(a=i.match(n.versionExtendedRegExp)),a||(a=i.match(n.versionRegExp))),s&&(a=i.match(n.shaRegExp)),a?a[0]:i}Object.defineProperty(e,"__esModule",{value:!0}),e.appVersion=r,e.default=void 0
var i=Ember.Helper.helper(r)
e.default=i}),define("kredits-web/helpers/await",["exports","ember-promise-helpers/helpers/await"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("kredits-web/helpers/contribution-status",["exports"],function(e){function t(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=[],r=!0,i=!1,o=void 0
try{for(var s,a=e[Symbol.iterator]();!(r=(s=a.next()).done)&&(n.push(s.value),!t||n.length!==t);r=!0);}catch(u){i=!0,o=u}finally{try{r||null==a.return||a.return()}finally{if(i)throw o}}return n}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
var n=Ember.Helper.extend({kredits:Ember.inject.service(),currentBlock:Ember.computed.alias("kredits.currentBlock"),compute:function(e){var n=t(e,1)[0]
return n.vetoed?"vetoed":n.confirmedAt>this.currentBlock?"unconfirmed":"confirmed"}})
e.default=n}),define("kredits-web/helpers/eq",["exports","ember-truth-helpers/helpers/equal"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"equal",{enumerable:!0,get:function(){return t.equal}})}),define("kredits-web/helpers/gt",["exports","ember-truth-helpers/helpers/gt"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"gt",{enumerable:!0,get:function(){return t.gt}})}),define("kredits-web/helpers/gte",["exports","ember-truth-helpers/helpers/gte"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"gte",{enumerable:!0,get:function(){return t.gte}})}),define("kredits-web/helpers/is-array",["exports","ember-truth-helpers/helpers/is-array"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"isArray",{enumerable:!0,get:function(){return t.isArray}})}),define("kredits-web/helpers/is-confirmed-contribution",["exports"],function(e){function t(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=[],r=!0,i=!1,o=void 0
try{for(var s,a=e[Symbol.iterator]();!(r=(s=a.next()).done)&&(n.push(s.value),!t||n.length!==t);r=!0);}catch(u){i=!0,o=u}finally{try{r||null==a.return||a.return()}finally{if(i)throw o}}return n}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
var n=Ember.Helper.extend({kredits:Ember.inject.service(),currentBlock:Ember.computed.alias("kredits.currentBlock"),compute:function(e){var n=t(e,1)[0]
return!n.vetoed&&n.confirmedAt<=this.currentBlock}})
e.default=n})
define("kredits-web/helpers/is-current-user",["exports"],function(e){function t(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=[],r=!0,i=!1,o=void 0
try{for(var s,a=e[Symbol.iterator]();!(r=(s=a.next()).done)&&(n.push(s.value),!t||n.length!==t);r=!0);}catch(u){i=!0,o=u}finally{try{r||null==a.return||a.return()}finally{if(i)throw o}}return n}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
var n=Ember.Helper.extend({kredits:Ember.inject.service(),currentUser:Ember.computed.alias("kredits.currentUser"),compute:function(e){var n=t(e,1)[0]
return Ember.isPresent(n)&&Ember.isPresent(this.currentUser)&&n.account===this.currentUser.account}})
e.default=n}),define("kredits-web/helpers/is-equal",["exports","ember-truth-helpers/helpers/is-equal"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"isEqual",{enumerable:!0,get:function(){return t.isEqual}})}),define("kredits-web/helpers/is-fulfilled",["exports","ember-promise-helpers/helpers/is-fulfilled"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"isFulfilled",{enumerable:!0,get:function(){return t.isFulfilled}})}),define("kredits-web/helpers/is-pending",["exports","ember-promise-helpers/helpers/is-pending"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"isPending",{enumerable:!0,get:function(){return t.isPending}})}),define("kredits-web/helpers/is-rejected",["exports","ember-promise-helpers/helpers/is-rejected"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"isRejected",{enumerable:!0,get:function(){return t.isRejected}})}),define("kredits-web/helpers/lt",["exports","ember-truth-helpers/helpers/lt"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"lt",{enumerable:!0,get:function(){return t.lt}})}),define("kredits-web/helpers/lte",["exports","ember-truth-helpers/helpers/lte"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"lte",{enumerable:!0,get:function(){return t.lte}})}),define("kredits-web/helpers/not-eq",["exports","ember-truth-helpers/helpers/not-equal"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"notEq",{enumerable:!0,get:function(){return t.notEq}})}),define("kredits-web/helpers/not",["exports","ember-truth-helpers/helpers/not"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"not",{enumerable:!0,get:function(){return t.not}})}),define("kredits-web/helpers/or",["exports","ember-truth-helpers/helpers/or"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"or",{enumerable:!0,get:function(){return t.or}})}),define("kredits-web/helpers/promise-all",["exports","ember-promise-helpers/helpers/promise-all"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"promiseAll",{enumerable:!0,get:function(){return t.promiseAll}})}),define("kredits-web/helpers/promise-hash",["exports","ember-promise-helpers/helpers/promise-hash"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"promiseHash",{enumerable:!0,get:function(){return t.promiseHash}})}),define("kredits-web/helpers/promise-rejected-reason",["exports","ember-promise-helpers/helpers/promise-rejected-reason"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("kredits-web/helpers/xor",["exports","ember-truth-helpers/helpers/xor"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"xor",{enumerable:!0,get:function(){return t.xor}})}),define("kredits-web/initializers/app-version",["exports","ember-cli-app-version/initializer-factory","kredits-web/config/environment"],function(e,t,n){var r,i
Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0,n.default.APP&&(r=n.default.APP.name,i=n.default.APP.version)
var o={name:"App Version",initialize:(0,t.default)(r,i)}
e.default=o}),define("kredits-web/initializers/container-debug-adapter",["exports","ember-resolver/resolvers/classic/container-debug-adapter"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
var n={name:"container-debug-adapter",initialize:function(){var e=arguments[1]||arguments[0]
e.register("container-debug-adapter:main",t.default),e.inject("container-debug-adapter:main","namespace","application:main")}}
e.default=n}),define("kredits-web/initializers/export-application-global",["exports","kredits-web/config/environment"],function(e,t){function n(){var e=arguments[1]||arguments[0]
if(!1!==t.default.exportApplicationGlobal){var n
if("undefined"!=typeof window)n=window
else if("undefined"!=typeof global)n=global
else{if("undefined"==typeof self)return
n=self}var r,i=t.default.exportApplicationGlobal
r="string"==typeof i?i:Ember.String.classify(t.default.modulePrefix),n[r]||(n[r]=e,e.reopen({willDestroy:function(){this._super.apply(this,arguments),delete n[r]}}))}}Object.defineProperty(e,"__esModule",{value:!0}),e.initialize=n,e.default=void 0
var r={name:"export-application-global",initialize:n}
e.default=r}),define("kredits-web/models/contribution",["exports","kredits-web/utils/cps/bignumber"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
var n=Ember.Object.extend({id:null,contributorId:null,amount:null,confirmedAt:(0,t.default)("confirmedAtBlock","toNumber"),vetoed:null,ipfsHash:null,creatorAccount:null,kind:null,description:null,details:null,url:null,ipfsData:"",init:function(){this._super.apply(this,arguments),this.set("details",{})}})
e.default=n}),define("kredits-web/models/contributor",["exports","kredits-web/utils/cps/bignumber","kredits-web/utils/cps/kredits"],function(e,t,n){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
var r=Ember.Object.extend({id:(0,t.default)("idRaw","toString"),account:null,balance:(0,n.default)("balanceRaw"),totalKreditsEarned:(0,t.default)("totalKreditsEarnedRaw","toNumber"),contributionsCount:(0,t.default)("contributionsCountRaw","toNumber"),isCore:!1,ipfsHash:null,kind:null,name:null,url:null,github_username:null,github_uid:null,wiki_username:null,ipfsData:"",avatarURL:Ember.computed("github_uid",function(){var e=this.github_uid
if(e)return"https://avatars2.githubusercontent.com/u/".concat(e,"?v=3&s=128")})})
e.default=r}),define("kredits-web/models/proposal",["exports","kredits-web/utils/cps/bignumber"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
var n=Ember.Object.extend({id:(0,t.default)("idRaw","toString"),creatorAccount:null,contributorId:(0,t.default)("contributorIdRaw","toString"),amount:(0,t.default)("amountRaw","toNumber"),votesCount:(0,t.default)("votesCountRaw","toNumber"),votesNeeded:(0,t.default)("votesNeededRaw","toNumber"),executed:null,ipfsHash:null,isExecuted:Ember.computed.alias("executed"),kind:null,description:null,details:null,url:null,ipfsData:"",init:function(){this._super.apply(this,arguments),this.set("details",{})}})
e.default=n}),define("kredits-web/resolver",["exports","ember-resolver"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
var n=t.default
e.default=n}),define("kredits-web/router",["exports","kredits-web/config/environment"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
var n=Ember.Router.extend({location:t.default.locationType,rootURL:t.default.rootURL})
n.map(function(){this.route("proposals",function(){this.route("new")})})
var r=n
e.default=r}),define("kredits-web/routes/application",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
var t=Ember.Route.extend({kredits:Ember.inject.service(),beforeModel:function(e){var t=this.kredits
return t.setup().then(function(){t.get("kredits").preflightChecks().catch(function(e){console.error("Kredits preflight check failed!"),console.error(e)}),t.get("accountNeedsUnlock")&&confirm("It looks like you have an Ethereum wallet available. Please unlock your account.")&&e.retry()}).catch(function(e){console.log("Error initializing Kredits",e)})},afterModel:function(){var e=this
return this.kredits.loadInitialData().then(function(){e.kredits.addContractEventHandlers()})}})
e.default=t}),define("kredits-web/services/ajax",["exports","ember-ajax/services/ajax"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("kredits-web/services/kredits",["exports","npm:ethers","npm:kredits-contracts","kredits-web/utils/group-by","kredits-web/utils/format-kredits","kredits-web/config/environment","kredits-web/models/contributor","kredits-web/models/proposal","kredits-web/models/contribution"],function(e,t,n,r,i,o,s,a,u){function l(e,t,n,r,i,o,s){try{var a=e[o](s),u=a.value}catch(l){return void n(l)}a.done?t(u):Promise.resolve(u).then(r,i)}function d(e){return function(){var t=this,n=arguments
return new Promise(function(r,i){var o=e.apply(t,n)
function s(e){l(o,r,i,s,a,"next",e)}function a(e){l(o,r,i,s,a,"throw",e)}s(void 0)})}}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
var c=Ember.Service.extend({currentBlock:null,currentUserAccounts:null,currentUser:null,contributors:null,contributions:null,proposals:null,currentUserIsContributor:Ember.computed.notEmpty("currentUser"),currentUserIsCore:Ember.computed.alias("currentUser.isCore"),hasAccounts:Ember.computed.notEmpty("currentUserAccounts"),accountNeedsUnlock:Ember.computed("currentUserAccounts",function(){return this.currentUserAccounts&&Ember.isEmpty(this.currentUserAccounts)}),contributionsUnconfirmed:Ember.computed("contributions.[]","currentBlock",function(){var e=this
return this.contributions.filter(function(t){return t.confirmedAt>e.currentBlock})}),contributionsConfirmed:Ember.computed("contributions.[]","currentBlock",function(){var e=this
return this.contributions.filter(function(t){return t.confirmedAt<=e.currentBlock})}),kreditsByContributor:Ember.computed("contributionsUnconfirmed.@each.vetoed","contributors",function(){var e=this,t=this.contributionsUnconfirmed.filterBy("vetoed",!1),n=(0,r.default)(t,"contributorId"),i=n.map(function(e){return e.value.toString()}),o=this.contributors.reject(function(e){return i.includes(e.id)}),s=n.map(function(t){var n=t.items.mapBy("amount").reduce(function(e,t){return e+t}),r=e.contributors.findBy("id",t.value.toString())
return Ember.Object.create({contributor:r,amountUnconfirmed:n,amountConfirmed:r.totalKreditsEarned,amountTotal:r.totalKreditsEarned+n})})
return o.forEach(function(e){s.push(Ember.Object.create({contributor:e,amountUnconfirmed:0,amountConfirmed:e.totalKreditsEarned,amountTotal:e.totalKreditsEarned}))}),s}),init:function(){this._super.apply(this,arguments),this.set("contributors",[]),this.set("proposals",[]),this.set("contributions",[])},getEthProvider:function(){var e,n=this
return new Ember.RSVP.Promise(function(){var r=d(regeneratorRuntime.mark(function r(i){var s,a,u
return regeneratorRuntime.wrap(function(r){for(;;)switch(r.prev=r.next){case 0:if(u=function(){return(u=d(regeneratorRuntime.mark(function n(r,o){return regeneratorRuntime.wrap(function(n){for(;;)switch(n.prev=n.next){case 0:console.debug("[kredits] Using user-provided instance, e.g. from Mist browser or Metamask"),(e=new t.default.providers.Web3Provider(r)).listAccounts().then(function(t){o.set("currentUserAccounts",t)
var n=0===t.length?null:e.getSigner()
i({ethProvider:e,ethSigner:n})})
case 3:case"end":return n.stop()}},n)}))).apply(this,arguments)},a=function(e,t){return u.apply(this,arguments)},s=function(){console.debug("[kredits] Creating new instance from npm module class"),console.debug("[kredits] providerURL: ".concat(o.default.web3ProviderUrl)),e=new t.default.providers.JsonRpcProvider(o.default.web3ProviderUrl),i({ethProvider:e,ethSigner:null})},!window.ethereum){r.next=15
break}return r.prev=4,r.next=7,window.ethereum.enable()
case 7:a(window.ethereum,n),r.next=13
break
case 10:r.prev=10,r.t0=r.catch(4),s()
case 13:r.next=16
break
case 15:window.web3?a(window.web3.currentProvider,n):s()
case 16:case"end":return r.stop()}},r,null,[[4,10]])}))
return function(e){return r.apply(this,arguments)}}())},setup:function(){var e=this
return this.getEthProvider().then(function(t){return new n.default(t.ethProvider,t.ethSigner,{addresses:{Kernel:o.default.kreditsKernelAddress},apm:o.default.kreditsApmDomain,ipfsConfig:o.default.ipfs}).init().then(function(){var t=d(regeneratorRuntime.mark(function t(n){return regeneratorRuntime.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return e.set("kredits",n),t.t0=e,t.next=4,n.provider.getBlockNumber()
case 4:return t.t1=t.sent,t.t0.set.call(t.t0,"currentBlock",t.t1),e.currentUserAccounts&&e.currentUserAccounts.length>0&&e.getCurrentUser.then(function(t){e.set("currentUser",t)}),t.abrupt("return",n)
case 8:case"end":return t.stop()}},t)}))
return function(e){return t.apply(this,arguments)}}())})},totalSupply:Ember.computed(function(){return this.kredits.Token.functions.totalSupply().then(function(e){return(0,i.default)(e)})}),totalKreditsEarned:Ember.computed(function(){return this.kredits.Contribution.functions.totalKreditsEarned(!0).then(function(e){return e.toNumber()})}),loadInitialData:function(){var e=this
return this.getContributors().then(function(t){return e.contributors.pushObjects(t)}).then(function(){return e.getContributions()}).then(function(t){return e.contributions.pushObjects(t)})},addContributor:function(e){if(e.github_uid){var t=parseInt(e.github_uid)
e.github_uid=t}return console.debug("[kredits] add contributor",e),this.kredits.Contributor.add(e,{gasLimit:35e4}).then(function(t){return console.debug("[kredits] add contributor response",t),s.default.create(e)})},getContributors:function(){return this.kredits.Contributor.all().then(function(e){return e.map(function(e){return s.default.create(e)})})},addProposal:function(e){var t=this
return console.debug("[kredits] add proposal",e),this.kredits.Proposal.addProposal(e).then(function(n){return console.debug("[kredits] add proposal response",n),e.contributor=t.contributors.findBy("id",e.contributorId),a.default.create(e)})},getProposals:function(){var e=this
return this.kredits.Proposal.all().then(function(t){return t.map(function(t){return t.contributor=e.contributors.findBy("id",t.contributorId.toString()),a.default.create(t)})})},getContributions:function(){var e=this
return this.kredits.Contribution.all({page:{size:200}}).then(function(t){return t.map(function(t){return t.contributor=e.contributors.findBy("id",t.contributorId.toString()),u.default.create(t)})})},vote:function(e){return console.debug("[kredits] vote for",e),this.kredits.Proposal.functions.vote(e).then(function(e){return console.debug("[kredits] vote response",e),e})},veto:function(e){return console.debug("[kredits] veto against",e),this.kredits.Contribution.functions.veto(e,{gasLimit:3e5}).then(function(e){return console.debug("[kredits] veto response",e),e})},getCurrentUser:Ember.computed("kredits.provider",function(){var e=this
return Ember.isEmpty(this.currentUserAccounts)?Ember.RSVP.resolve():this.kredits.Contributor.functions.getContributorIdByAddress(this.get("currentUserAccounts.firstObject")).then(function(t){return 0===t?Ember.RSVP.resolve():e.kredits.Contributor.getById(t)})}),findProposalById:function(e){return this.proposals.findBy("id",e.toString())},addContractEventHandlers:function(){this.kredits.Contribution.on("ContributionVetoed",this.handleContributionVetoed.bind(this)),this.kredits.Proposal.on("ProposalCreated",this.handleProposalCreated.bind(this)).on("ProposalVoted",this.handleProposalVoted.bind(this)).on("ProposalExecuted",this.handleProposalExecuted.bind(this)),this.kredits.Token.on("Transfer",this.handleTransfer.bind(this))},handleContributionVetoed:function(e){console.debug("[kredits] ContributionVetoed event received for ",e)
var t=this.contributions.findBy("id",e)
console.debug("[kredits] contribution",t),t&&t.set("vetoed",!0)},handleProposalCreated:function(e){var t=this
this.findProposalById(e)?console.debug("[events] proposal exists, not adding from event"):this.kredits.Proposal.getById(e).then(function(e){e.contributor=t.contributors.findBy("id",e.contributorId.toString()),t.proposals.pushObject(a.default.create(e))})},handleProposalVoted:function(e,t,n){var r=this.findProposalById(e)
r&&r.set("votesCount",n)},handleProposalExecuted:function(e,t,n){var r=this.findProposalById(e)
r.get("isExecuted")?console.debug("[events] proposal already executed, not adding from event"):(r.set("executed",!0),this.contributors.findBy("id",t.toString()).incrementProperty("balance",n))},handleTransfer:function(e,t,n){n=n.toNumber(),this.contributors.findBy("address",e).decrementProperty("balance",n),this.contributors.findBy("address",t).incrementProperty("balance",n)}})
e.default=c}),define("kredits-web/templates/application-loading",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
var t=Ember.HTMLBars.template({id:"/K85jZFR",block:'{"symbols":[],"statements":[[1,[21,"loading-spinner"],false],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"kredits-web/templates/application-loading.hbs"}})
e.default=t}),define("kredits-web/templates/application",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
var t=Ember.HTMLBars.template({id:"M6vaFJ5T",block:'{"symbols":[],"statements":[[7,"header"],[11,"id","topbar"],[9],[0,"\\n "],[7,"h1"],[9],[0,"Kosmos Kredits"],[10],[0,"\\n\\n "],[7,"section"],[11,"id","user-account"],[9],[0,"\\n"],[4,"if",[[23,["kredits","hasAccounts"]]],null,{"statements":[[4,"if",[[23,["kredits","currentUser"]]],null,{"statements":[[0," "],[1,[23,["kredits","currentUser","name"]],false],[0,"\\n "],[4,"if",[[23,["kredits","currentUserIsCore"]]],null,{"statements":[[0,"(core)"]],"parameters":[]},null],[0,"\\n"]],"parameters":[]},null]],"parameters":[]},{"statements":[[0," Anonymous\\n"]],"parameters":[]}],[0," "],[10],[0,"\\n"],[10],[0,"\\n\\n"],[1,[21,"outlet"],false],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"kredits-web/templates/application.hbs"}})
e.default=t}),define("kredits-web/templates/index",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
var t=Ember.HTMLBars.template({id:"mk8W6Kxd",block:'{"symbols":[],"statements":[[7,"main"],[11,"id","index"],[9],[0,"\\n\\n "],[7,"div"],[11,"id","stats"],[9],[0,"\\n "],[7,"section"],[11,"id","people"],[9],[0,"\\n "],[7,"header"],[9],[0,"\\n "],[7,"h2"],[9],[0,"Contributors"],[10],[0,"\\n "],[10],[0,"\\n "],[7,"div"],[11,"class","content"],[9],[0,"\\n "],[1,[27,"contributor-list",null,[["contributorList","showUnconfirmedKredits"],[[23,["kreditsToplist"]],[23,["showUnconfirmedKredits"]]]]],false],[0,"\\n\\n "],[7,"p"],[11,"class","stats"],[9],[0,"\\n "],[7,"span"],[11,"class","number"],[9],[1,[27,"await",[[23,["kredits","totalKreditsEarned"]]],null],false],[10],[0," kredits confirmed and issued to\\n "],[7,"span"],[11,"class","number"],[9],[1,[23,["contributorsWithKredits","length"]],false],[10],[0," contributors\\n "],[10],[0,"\\n "],[7,"p"],[11,"class","stats"],[9],[0,"\\n "],[1,[27,"input",null,[["type","id","checked"],["checkbox","hide-unnconfirmed-kredits",[23,["showUnconfirmedKredits"]]]]],false],[0,"\\n "],[7,"label"],[11,"for","hide-unnconfirmed-kredits"],[9],[0,"Show unconfirmed kredits in toplist"],[10],[0,"\\n "],[10],[0,"\\n "],[10],[0,"\\n "],[10],[0,"\\n\\n "],[7,"section"],[11,"id","contributions-by-type"],[9],[0,"\\n "],[7,"header"],[9],[0,"\\n "],[7,"h2"],[9],[0,"Contributions by type"],[10],[0,"\\n "],[10],[0,"\\n "],[7,"div"],[11,"class","content"],[9],[0,"\\n "],[1,[27,"chart-contributions-by-type",null,[["contributions"],[[23,["contributions"]]]]],false],[0,"\\n "],[10],[0,"\\n "],[10],[0,"\\n "],[10],[0,"\\n\\n "],[7,"div"],[11,"id","contributions"],[9],[0,"\\n"],[4,"if",[[23,["contributionsUnconfirmed"]]],null,{"statements":[[0," "],[7,"section"],[11,"id","contributions-unconfirmed"],[9],[0,"\\n "],[7,"header"],[9],[0,"\\n "],[7,"h2"],[9],[0,"Latest Contributions"],[10],[0,"\\n "],[10],[0,"\\n "],[7,"div"],[11,"class","content"],[9],[0,"\\n"],[0," "],[1,[27,"contribution-list",null,[["contributions","vetoContribution","contractInteractionEnabled"],[[23,["contributionsUnconfirmedSorted"]],[27,"action",[[22,0,[]],"vetoContribution"],null],[23,["kredits","hasAccounts"]]]]],false],[0,"\\n "],[10],[0,"\\n "],[10],[0,"\\n"]],"parameters":[]},null],[0,"\\n "],[7,"section"],[11,"id","contributions-confirmed"],[9],[0,"\\n "],[7,"header"],[9],[0,"\\n "],[7,"h2"],[9],[0,"Confirmed Contributions"],[10],[0,"\\n "],[10],[0,"\\n "],[7,"div"],[11,"class","content"],[9],[0,"\\n "],[1,[27,"contribution-list",null,[["contributions","vetoContribution"],[[23,["contributionsConfirmedSorted"]],[27,"action",[[22,0,[]],"vetoContribution"],null]]]],false],[0,"\\n "],[10],[0,"\\n\\n"],[4,"if",[[23,["kredits","hasAccounts"]]],null,{"statements":[[0," "],[7,"p"],[11,"class","actions"],[9],[0,"\\n "],[4,"link-to",["proposals.new"],null,{"statements":[[0,"Create new proposal"]],"parameters":[]},null],[0,"\\n "],[10],[0,"\\n"]],"parameters":[]},null],[0," "],[10],[0,"\\n "],[10],[0,"\\n\\n"],[4,"if",[[23,["kredits","hasAccounts"]]],null,{"statements":[[0," "],[7,"section"],[11,"id","add-contributor"],[9],[0,"\\n "],[7,"header"],[9],[0,"\\n "],[7,"h2"],[9],[0,"Add Contributor"],[10],[0,"\\n "],[10],[0,"\\n\\n "],[7,"div"],[11,"class","content"],[9],[0,"\\n"],[4,"if",[[23,["kredits","currentUser","isCore"]]],null,{"statements":[[0," "],[1,[27,"add-contributor",null,[["contributors","save"],[[23,["contributors"]],[27,"action",[[22,0,[]],"save"],null]]]],false],[0,"\\n"]],"parameters":[]},{"statements":[[0," Only core team members can add new contributors. Please ask someone to set you up.\\n"]],"parameters":[]}],[0," "],[10],[0,"\\n "],[10],[0,"\\n"]],"parameters":[]},null],[0,"\\n"],[10],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"kredits-web/templates/index.hbs"}})
e.default=t}),define("kredits-web/templates/proposals/new",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
var t=Ember.HTMLBars.template({id:"vauAEy3a",block:'{"symbols":[],"statements":[[7,"section"],[11,"id","add-proposal"],[9],[0,"\\n "],[7,"header"],[9],[0,"\\n "],[7,"h2"],[9],[0,"Add Proposal"],[10],[0,"\\n "],[10],[0,"\\n\\n "],[7,"div"],[11,"class","content"],[9],[0,"\\n "],[1,[27,"add-proposal",null,[["contributors","save"],[[23,["minedContributors"]],[27,"action",[[22,0,[]],"save"],null]]]],false],[0,"\\n "],[10],[0,"\\n"],[10],[0,"\\n\\n"]],"hasEval":false}',meta:{moduleName:"kredits-web/templates/proposals/new.hbs"}})
e.default=t}),define("kredits-web/utils/cps/bignumber",["exports","npm:ethers"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(e,n){return Ember.computed(e,{get:function(){var r=this.get(e)
return r&&t.default.utils.BigNumber.isBigNumber(r)?r[n]():r},set:function(r,i){var o=t.default.utils.bigNumberify(i)
return this.set(e,o),o[n]()}})}})
define("kredits-web/utils/cps/kredits",["exports","npm:ethers","kredits-web/utils/format-kredits"],function(e,t,n){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}
return Ember.computed(e,{get:function(){var t=this.get(e)
return(0,n.default)(t,r)},set:function(i,o){var s=t.default.utils.bigNumberify(o)
return this.set(e,s),(0,n.default)(s,r)}})}}),define("kredits-web/utils/format-kredits",["exports","npm:ethers"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.default.utils.formatEther(e)
n.decimals||(r=parseInt(r).toString())
return r}}),define("kredits-web/utils/group-by",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(e,t){var n=Ember.A(),r=e
r&&r.forEach(function(e){var r=Ember.get(e,t),i=n.findBy("value",r)
Ember.isPresent(i)?Ember.get(i,"items").push(e):(i={property:t,value:r,items:[e]},n.push(i))})
return n}}),define("kredits-web/config/environment",[],function(){try{var e="kredits-web/config/environment",t=document.querySelector('meta[name="'+e+'"]').getAttribute("content"),n={default:JSON.parse(decodeURIComponent(t))}
return Object.defineProperty(n,"__esModule",{value:!0}),n}catch(r){throw new Error('Could not read config from meta tag with name "'+e+'".')}}),runningTests||require("kredits-web/app").default.create({name:"kredits-web",version:"1.0.0+4c2d95f8"})
//# sourceMappingURL=kredits-web-f60c75d6ff7a9c4afb0c9272d7945362.map
@@ -0,0 +1 @@
{"version":3,"sources":["vendor/ember-cli/app-prefix.js","kredits-web/app.js","kredits-web/components/add-contributor/component.js","kredits-web/components/add-contributor/template.js","kredits-web/components/add-proposal/component.js","kredits-web/components/add-proposal/template.js","kredits-web/components/contributor-list/component.js","kredits-web/components/contributor-list/template.js","kredits-web/components/loading-spinner/component.js","kredits-web/components/loading-spinner/template.js","kredits-web/components/proposal-list/component.js","kredits-web/components/proposal-list/template.js","kredits-web/controllers/application.js","kredits-web/controllers/index.js","kredits-web/controllers/proposals/new.js","kredits-web/helpers/and.js","kredits-web/helpers/app-version.js","kredits-web/helpers/await.js","kredits-web/helpers/eq.js","kredits-web/helpers/gt.js","kredits-web/helpers/gte.js","kredits-web/helpers/is-array.js","kredits-web/helpers/is-equal.js","kredits-web/helpers/is-fulfilled.js","kredits-web/helpers/is-pending.js","kredits-web/helpers/is-rejected.js","kredits-web/helpers/lt.js","kredits-web/helpers/lte.js","kredits-web/helpers/not-eq.js","kredits-web/helpers/not.js","kredits-web/helpers/or.js","kredits-web/helpers/promise-all.js","kredits-web/helpers/promise-hash.js","kredits-web/helpers/promise-rejected-reason.js","kredits-web/helpers/xor.js","kredits-web/initializers/app-version.js","kredits-web/initializers/container-debug-adapter.js","kredits-web/initializers/export-application-global.js","kredits-web/models/contributor.js","kredits-web/models/proposal.js","kredits-web/resolver.js","kredits-web/router.js","kredits-web/routes/application.js","kredits-web/routes/spinner.js","kredits-web/services/ajax.js","kredits-web/services/kredits.js","kredits-web/templates/application.js","kredits-web/templates/index.js","kredits-web/templates/loading.js","kredits-web/templates/proposals/new.js","kredits-web/templates/spinner.js","kredits-web/utils/cps/bignumber.js","vendor/ember-cli/app-config.js","vendor/ember-cli/app-boot.js"],"names":["define","exports","_resolver","_emberLoadInitializers","_environment","Object","defineProperty","value","App","Ember","Application","extend","modulePrefix","default","podModulePrefix","Resolver","Component","kredits","inject","service","attributes","account","name","kind","url","github_username","github_uid","wiki_username","isCore","didInsertElement","this","_super","apply","arguments","reset","isValidAccount","computed","notEmpty","isValidName","isValidURL","isValidGithubUID","isValidGithubUsername","isValidWikiUsername","isValid","and","setProperties","actions","submit","_this","keys","contributor","getProperties","saved","save","set","then","window","scroll","alert","HTMLBars","template","id","block","meta","moduleName","contributorId","amount","description","contributors","isValidContributor","isValidAmount","parseInt","isValidDescription","isValidUrl","proposal","tagName","classNames","selectedContributor","toggleContributorInfo","get","setEach","confirm","proposalId","contractInteractionEnabled","confirmProposal","Controller","alias","contributorsWithKredits","filter","contributorsSorting","contributorsSorted","sort","proposals","proposalsOpen","filterBy","proposalsClosed","proposalsSorting","proposalsClosedSorted","proposalsOpenSorted","vote","transaction","hash","addContributor","pushObject","minedContributors","findBy","contributorIpfsHash","addProposal","transitionToRoute","_and","enumerable","_regexp","appVersion","version","APP","_","length","undefined","hideSha","match","versionRegExp","hideVersion","shaRegExp","Helper","helper","_await","_equal","equal","_gt","gt","_gte","gte","_isArray","isArray","_isEqual","isEqual","_isFulfilled","isFulfilled","_isPending","isPending","_isRejected","isRejected","_lt","lt","_lte","lte","_notEqual","notEq","_not","not","_or","or","_promiseAll","promiseAll","_promiseHash","promiseHash","_promiseRejectedReason","_xor","xor","_initializerFactory","initialize","_containerDebugAdapter","app","register","application","exportApplicationGlobal","theGlobal","global","self","globalName","String","classify","reopen","willDestroy","_bignumber","balance","ipfsHash","ipfsData","isCurrentUser","avatarURL","creatorAccount","votesCount","votesNeeded","executed","isExecuted","details","_emberResolver","Router","location","locationType","rootURL","map","route","Route","beforeModel","transition","setup","retry","catch","error","console","log","afterModel","loadContributorsAndProposals","addContractEventHandlers","_ajax","_npmEthers","_npmKreditsContracts","_contributor","_proposal","Service","currentUserAccounts","currentUser","currentUserIsContributor","currentUserIsCore","hasAccounts","accountNeedsUnlock","isEmpty","getEthProvider","RSVP","Promise","resolve","ethProvider","networkId","web3","debug","network","providers","Web3Provider","currentProvider","chainId","listAccounts","accounts","contractMetadata","JsonRpcProvider","web3ProLine truncated
@@ -0,0 +1,43 @@
"use strict"
define("kredits-web/app",["exports","kredits-web/resolver","ember-load-initializers","kredits-web/config/environment"],function(e,t,n,r){Object.defineProperty(e,"__esModule",{value:!0})
var o=Ember.Application.extend({modulePrefix:r.default.modulePrefix,podModulePrefix:r.default.podModulePrefix,Resolver:t.default});(0,n.default)(o,r.default.modulePrefix),e.default=o}),define("kredits-web/components/add-contributor/component",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Component.extend({kredits:Ember.inject.service(),attributes:{account:null,name:null,kind:"person",url:null,github_username:null,github_uid:null,wiki_username:null,isCore:!1},didInsertElement:function(){this._super.apply(this,arguments),this.reset()},isValidAccount:Ember.computed.notEmpty("account"),isValidName:Ember.computed.notEmpty("name"),isValidURL:Ember.computed.notEmpty("url"),isValidGithubUID:Ember.computed.notEmpty("github_uid"),isValidGithubUsername:Ember.computed.notEmpty("github_username"),isValidWikiUsername:Ember.computed.notEmpty("wiki_username"),isValid:Ember.computed.and("isValidAccount","isValidName","isValidGithubUID"),reset:function(){this.setProperties(this.attributes)},actions:{submit:function(){var e=this
if(this.isValid){var t=Object.keys(this.attributes),n=this.getProperties(t),r=this.save(n)
this.set("inProgress",r),r.then(function(){e.reset(),window.scroll(0,0),window.alert("Contributor added.")})}else alert("Invalid data. Please review and try again.")}}})}),define("kredits-web/components/add-contributor/template",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"CSegBQfj",block:'{"symbols":[],"statements":[[6,"form"],[3,"action",[[21,0,[]],"submit"],[["on"],["submit"]]],[8],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[1,[26,"input",null,[["name","type","id","checked"],["is-core","checkbox","is-core",[22,["isCore"]]]]],false],[0,"\\n "],[6,"label"],[10,"for","is-core"],[10,"class","checkbox"],[8],[0,"\\n Core team member (can add contributors)\\n "],[9],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[1,[26,"input",null,[["name","type","placeholder","value","class"],["account","text","0xF18E631Ea191aE4ebE70046Fcb01a436554421BA4",[22,["account"]],[26,"if",[[22,["isValidAccount"]],"valid",""],null]]]],false],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[6,"select"],[10,"required",""],[11,"onchange",[26,"action",[[21,0,[]],[26,"mut",[[22,["kind"]]],null]],[["value"],["target.value"]]],null],[8],[0,"\\n "],[6,"option"],[10,"value","person"],[11,"selected",[26,"eq",[[22,["kind"]],"person"],null],null],[8],[0,"Person"],[9],[0,"\\n "],[6,"option"],[10,"value","organization"],[11,"selected",[26,"eq",[[22,["kind"]],"organization"],null],null],[8],[0,"Organization"],[9],[0,"\\n "],[9],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[1,[26,"input",null,[["name","type","placeholder","value","class"],["name","text","Name",[22,["name"]],[26,"if",[[22,["isValidName"]],"valid",""],null]]]],false],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[1,[26,"input",null,[["name","type","placeholder","value","class"],["url","text","URL",[22,["url"]],[26,"if",[[22,["isValidURL"]],"valid",""],null]]]],false],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[1,[26,"input",null,[["name","type","placeholder","value","class"],["github_uid","text","GitHub UID (123)",[22,["github_uid"]],[26,"if",[[22,["isValidGithubUID"]],"valid",""],null]]]],false],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[1,[26,"input",null,[["name","type","placeholder","value","class"],["github_username","text","GitHub username",[22,["github_username"]],[26,"if",[[22,["isValidGithubUsername"]],"valid",""],null]]]],false],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[1,[26,"input",null,[["name","type","placeholder","value","class"],["wiki_username","text","Wiki Username",[22,["wiki_username"]],[26,"if",[[22,["isValidWikiUsername"]],"valid",""],null]]]],false],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[10,"class","actions"],[8],[0,"\\n "],[1,[26,"input",null,[["type","disabled","value"],["submit",[26,"is-pending",[[22,["inProgress"]]],null],[26,"if",[[26,"is-pending",[[22,["inProgress"]]],null],"Processing","Save"],null]]]],false],[0,"\\n "],[9],[0,"\\n"],[9],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"kredits-web/components/add-contributor/template.hbs"}})}),define("kredits-web/components/add-proposal/component",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Component.extend({attributes:{contributorId:null,kind:"community",amount:null,description:null,url:null},didInsertElement:function(){this._super.apply(this,arguments),this.reset()},contributors:[],isValidContributor:Ember.computed.notEmpty("contributorId"),isValidAmount:Ember.computed("amount",function(){return parseInt(this.amount,10)>0}),isValidDescription:Ember.computed.notEmpty("description"),isValidUrl:Ember.computed.notEmpty("url"),isValid:Ember.computed.and("isValidContributor","isValidAmount","isValidDescription"),reset:function(){this.setProperties(this.attributes)},actions:{submit:function(){var e=this
if(this.isValid){var t=Object.keys(this.attributes),n=this.getProperties(t),r=this.save(n)
this.set("inProgress",r),r.then(function(){e.reset(),window.scroll(0,0),window.alert("Proposal added.")})}else alert("Invalid data. Please review and try again.")}}})}),define("kredits-web/components/add-proposal/template",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"cM+dvRZ+",block:'{"symbols":["contributor"],"statements":[[6,"form"],[3,"action",[[21,0,[]],"submit"],[["on"],["submit"]]],[8],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[6,"select"],[10,"required",""],[11,"onchange",[26,"action",[[21,0,[]],[26,"mut",[[22,["contributorId"]]],null]],[["value"],["target.value"]]],null],[8],[0,"\\n "],[6,"option"],[10,"value",""],[10,"selected",""],[10,"disabled",""],[10,"hidden",""],[8],[0,"Contributor"],[9],[0,"\\n"],[4,"each",[[22,["contributors"]]],null,{"statements":[[0," "],[6,"option"],[11,"value",[21,1,["id"]],null],[11,"selected",[26,"eq",[[22,["contributorId"]],[21,1,["id"]]],null],null],[8],[1,[21,1,["github_username"]],false],[9],[0,"\\n"]],"parameters":[1]},null],[0," "],[9],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[6,"select"],[10,"required",""],[11,"onchange",[26,"action",[[21,0,[]],[26,"mut",[[22,["kind"]]],null]],[["value"],["target.value"]]],null],[8],[0,"\\n "],[6,"option"],[10,"value","community"],[11,"selected",[26,"eq",[[22,["kind"]],"community"],null],null],[8],[0,"Community"],[9],[0,"\\n "],[6,"option"],[10,"value","design"],[11,"selected",[26,"eq",[[22,["kind"]],"design"],null],null],[8],[0,"Design"],[9],[0,"\\n "],[6,"option"],[10,"value","dev"],[11,"selected",[26,"eq",[[22,["kind"]],"dev"],null],null],[8],[0,"Development"],[9],[0,"\\n "],[6,"option"],[10,"value","docs"],[11,"selected",[26,"eq",[[22,["kind"]],"docs"],null],null],[8],[0,"Documentation"],[9],[0,"\\n "],[6,"option"],[10,"value","ops"],[11,"selected",[26,"eq",[[22,["kind"]],"ops"],null],null],[8],[0,"IT Operations"],[9],[0,"\\n "],[9],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[1,[26,"input",null,[["type","placeholder","value","class"],["text","100",[22,["amount"]],[26,"if",[[22,["isValidAmount"]],"valid",""],null]]]],false],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[1,[26,"input",null,[["type","placeholder","value","class"],["text","Description",[22,["description"]],[26,"if",[[22,["isValidDescription"]],"valid",""],null]]]],false],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[1,[26,"input",null,[["type","placeholder","value","class"],["text","URL (optional)",[22,["url"]],[26,"if",[[22,["isValidUrl"]],"valid",""],null]]]],false],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[10,"class","actions"],[8],[0,"\\n "],[1,[26,"input",null,[["type","disabled","value"],["submit",[26,"is-pending",[[22,["inProgress"]]],null],[26,"if",[[26,"is-pending",[[22,["inProgress"]]],null],"Processing","Save"],null]]]],false],[0,"\\n "],[4,"link-to",["index"],null,{"statements":[[0,"Back"]],"parameters":[]},null],[0,"\\n "],[9],[0,"\\n"],[9],[0,"\\n\\n"]],"hasEval":false}',meta:{moduleName:"kredits-web/components/add-proposal/template.hbs"}})}),define("kredits-web/components/contributor-list/component",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Component.extend({tagName:"table",classNames:"contributor-list",selectedContributor:null,actions:{toggleContributorInfo:function(e){e.get("showMetadata")?e.set("showMetadata",!1):(this.contributors.setEach("showMetadata",!1),e.set("showMetadata",!0))}}})}),define("kredits-web/components/contributor-list/template",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"1c6etkaE",block:'{"symbols":["contributor"],"statements":[[6,"tbody"],[8],[0,"\\n"],[4,"each",[[22,["contributors"]]],null,{"statements":[[0," "],[6,"tr"],[11,"class",[27,[[26,"if",[[21,1,["isCurrentUser"]],"current-user"],null]]]],[3,"action",[[21,0,[]],"toggleContributorInfo",[21,1,[]]]],[8],[0,"\\n "],[6,"td"],[10,"class","person"],[8],[0,"\\n "],[6,"img"],[10,"class","avatar"],[11,"src",[21,1,["avatarURL"]],null],[8],[9],[0,"\\n "],[1,[21,1,["name"]],false],[0,"\\n "],[9],[0,"\\n "],[6,"td"],[10,"class","kredits"],[8],[0,"\\n "],[6,"span"],[10,"class","amount"],[8],[1,[21,1,["balance"]],false],[9],[0,"\\n "],[6,"span"],[10,"class","symbol"],[8],[0,"₭S"],[9],[0,"\\n "],[9],[0,"\\n "],[9],[0,"\\n "],[6,"tr"],[11,"class",[27,["metadata ",[26,"if",[[21,1,["isCurrentUser"]],"current-user"],null]," ",[26,"if",[[21,1,["showMetadata"]],"visible"],null]]]],[8],[0,"\\n "],[6,"td"],[10,"colspan","2"],[8],[0,"\\n "],[6,"ul"],[8],[0,"\\n "],[6,"li"],[8],[6,"a"],[11,"href",[27,["https://testnet.etherscan.io/address/",[21,1,["account"]]]]],[8],[0,"Inspect Ethereum transactions"],[9],[9],[0,"\\n"],[4,"if",[[21,1,["ipfsHash"]]],null,{"statements":[[0," "],[6,"li"],[8],[6,"a"],[11,"href",[27,["https://ipfs.io/ipfs/",[21,1,[Line truncated
return this.kredits.addContributor(e).then(function(e){return t.contributors.pushObject(e),e})}}})}),define("kredits-web/controllers/proposals/new",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Controller.extend({kredits:Ember.inject.service(),contributors:Ember.computed.alias("kredits.contributors"),minedContributors:Ember.computed.filterBy("contributors","id"),actions:{save:function(e){var t=this,n=this.contributors.findBy("id",e.contributorId)
return e.contributorIpfsHash=n.get("ipfsHash"),this.kredits.addProposal(e).then(function(e){return t.transitionToRoute("index"),e})}}})}),define("kredits-web/helpers/and",["exports","ember-truth-helpers/helpers/and"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"and",{enumerable:!0,get:function(){return t.and}})}),define("kredits-web/helpers/app-version",["exports","kredits-web/config/environment","ember-cli-app-version/utils/regexp"],function(e,t,n){Object.defineProperty(e,"__esModule",{value:!0}),e.appVersion=o
var r=t.default.APP.version
function o(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}
return t.hideSha?r.match(n.versionRegExp)[0]:t.hideVersion?r.match(n.shaRegExp)[0]:r}e.default=Ember.Helper.helper(o)}),define("kredits-web/helpers/await",["exports","ember-promise-helpers/helpers/await"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("kredits-web/helpers/eq",["exports","ember-truth-helpers/helpers/equal"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"equal",{enumerable:!0,get:function(){return t.equal}})}),define("kredits-web/helpers/gt",["exports","ember-truth-helpers/helpers/gt"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"gt",{enumerable:!0,get:function(){return t.gt}})}),define("kredits-web/helpers/gte",["exports","ember-truth-helpers/helpers/gte"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"gte",{enumerable:!0,get:function(){return t.gte}})}),define("kredits-web/helpers/is-array",["exports","ember-truth-helpers/helpers/is-array"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"isArray",{enumerable:!0,get:function(){return t.isArray}})}),define("kredits-web/helpers/is-equal",["exports","ember-truth-helpers/helpers/is-equal"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"isEqual",{enumerable:!0,get:function(){return t.isEqual}})}),define("kredits-web/helpers/is-fulfilled",["exports","ember-promise-helpers/helpers/is-fulfilled"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"isFulfilled",{enumerable:!0,get:function(){return t.isFulfilled}})}),define("kredits-web/helpers/is-pending",["exports","ember-promise-helpers/helpers/is-pending"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"isPending",{enumerable:!0,get:function(){return t.isPending}})}),define("kredits-web/helpers/is-rejected",["exports","ember-promise-helpers/helpers/is-rejected"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"isRejected",{enumerable:!0,get:function(){return t.isRejected}})}),define("kredits-web/helpers/lt",["exports","ember-truth-helpers/helpers/lt"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"lt",{enumerable:!0,get:function(){return t.lt}})}),define("kredits-web/helpers/lte",["exports","ember-truth-helpers/helpers/lte"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"lte",{enumerable:!0,get:function(){return t.lte}})}),define("kredits-web/helpers/not-eq",["exports","ember-truth-helpers/helpers/not-equal"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"notEq",{enumerable:!0,get:function(){return t.notEq}})}),define("kredits-web/helpers/not",["exports","ember-truth-helpers/helpers/not"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"not",{enumerable:!0,get:function(){return t.not}})}),define("kredits-web/helpers/or",["exports","ember-truth-helpers/helpers/or"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"or",{enumerable:!0,get:function(){return t.or}})})
define("kredits-web/helpers/promise-all",["exports","ember-promise-helpers/helpers/promise-all"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"promiseAll",{enumerable:!0,get:function(){return t.promiseAll}})}),define("kredits-web/helpers/promise-hash",["exports","ember-promise-helpers/helpers/promise-hash"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"promiseHash",{enumerable:!0,get:function(){return t.promiseHash}})}),define("kredits-web/helpers/promise-rejected-reason",["exports","ember-promise-helpers/helpers/promise-rejected-reason"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("kredits-web/helpers/xor",["exports","ember-truth-helpers/helpers/xor"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"xor",{enumerable:!0,get:function(){return t.xor}})}),define("kredits-web/initializers/app-version",["exports","ember-cli-app-version/initializer-factory","kredits-web/config/environment"],function(e,t,n){Object.defineProperty(e,"__esModule",{value:!0})
var r=void 0,o=void 0
n.default.APP&&(r=n.default.APP.name,o=n.default.APP.version),e.default={name:"App Version",initialize:(0,t.default)(r,o)}}),define("kredits-web/initializers/container-debug-adapter",["exports","ember-resolver/resolvers/classic/container-debug-adapter"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default={name:"container-debug-adapter",initialize:function(){var e=arguments[1]||arguments[0]
e.register("container-debug-adapter:main",t.default),e.inject("container-debug-adapter:main","namespace","application:main")}}}),define("kredits-web/initializers/export-application-global",["exports","kredits-web/config/environment"],function(e,t){function n(){var e=arguments[1]||arguments[0]
if(!1!==t.default.exportApplicationGlobal){var n
if("undefined"!=typeof window)n=window
else if("undefined"!=typeof global)n=global
else{if("undefined"==typeof self)return
n=self}var r,o=t.default.exportApplicationGlobal
r="string"==typeof o?o:Ember.String.classify(t.default.modulePrefix),n[r]||(n[r]=e,e.reopen({willDestroy:function(){this._super.apply(this,arguments),delete n[r]}}))}}Object.defineProperty(e,"__esModule",{value:!0}),e.initialize=n,e.default={name:"export-application-global",initialize:n}}),define("kredits-web/models/contributor",["exports","kredits-web/utils/cps/bignumber"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Object.extend({id:(0,t.default)("idRaw","toString"),account:null,balance:(0,t.default)("balanceRaw","toNumber"),isCore:!1,ipfsHash:null,kind:null,name:null,url:null,github_username:null,github_uid:null,wiki_username:null,ipfsData:"",isCurrentUser:!1,avatarURL:Ember.computed("github_uid",function(){var e=this.github_uid
if(e)return"https://avatars2.githubusercontent.com/u/"+e+"?v=3&s=128"})})}),define("kredits-web/models/proposal",["exports","kredits-web/utils/cps/bignumber"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Object.extend({id:(0,t.default)("idRaw","toString"),creatorAccount:null,contributorId:(0,t.default)("contributorIdRaw","toString"),amount:(0,t.default)("amountRaw","toNumber"),votesCount:(0,t.default)("votesCountRaw","toNumber"),votesNeeded:(0,t.default)("votesNeededRaw","toNumber"),executed:null,ipfsHash:null,isExecuted:Ember.computed.alias("executed"),kind:null,description:null,details:{},url:null,ipfsData:""})}),define("kredits-web/resolver",["exports","ember-resolver"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=t.default}),define("kredits-web/router",["exports","kredits-web/config/environment"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0})
var n=Ember.Router.extend({location:t.default.locationType,rootURL:t.default.rootURL})
n.map(function(){this.route("proposals",function(){this.route("new")})}),e.default=n}),define("kredits-web/routes/application",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Route.extend({kredits:Ember.inject.service(),beforeModel:function(e){var t=this.kredits
return t.setup().then(function(){t.get("accountNeedsUnlock")&&confirm("It looks like you have an Ethereum wallet available. Please unlock your account.")&&e.retry()}).catch(function(e){console.log("Error initializing Kredits",e)})},afterModel:function(){var e=this
return this.kredits.loadContributorsAndProposals().then(function(){e.kredits.addContractEventHandlers()})}})}),define("kredits-web/services/ajax",["exports","ember-ajax/services/ajax"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("kredits-web/services/kredits",["exports","npm:ethers","npm:kredits-contracts","kredits-web/config/environment","kredits-web/models/contributor","kredits-web/models/proposal"],function(e,t,n,r,o,s){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Service.extend({currentUserAccounts:null,currentUser:null,currentUserIsContributor:Ember.computed.notEmpty("currentUser"),currentUserIsCore:Ember.computed.alias("currentUser.isCore"),hasAccounts:Ember.computed.notEmpty("currentUserAccounts"),accountNeedsUnlock:Ember.computed("currentUserAccounts",function(){return this.currentUserAccounts&&Ember.isEmpty(this.currentUserAccounts)}),getEthProvider:function(){var e=this
return new Ember.RSVP.Promise(function(n){var o=void 0,s=void 0
void 0!==window.web3?(console.debug("[kredits] Using user-provided instance, e.g. from Mist browser or Metamask"),s=parseInt(window.web3.version.network),(o=new t.default.providers.Web3Provider(window.web3.currentProvider,{chainId:s})).listAccounts().then(function(t){e.set("currentUserAccounts",t)
var r=0===t.length?null:o.getSigner()
n({ethProvider:o,ethSigner:r})})):(console.debug("[kredits] Creating new instance from npm module class"),s=parseInt(r.default.contractMetadata.networkId),console.debug("[kredits] networkId="+s+" providerURL: "+r.default.web3ProviderUrl),o=new t.default.providers.JsonRpcProvider(r.default.web3ProviderUrl,{chainId:s}),n({ethProvider:o,ethSigner:null}))})},setup:function(){var e=this
return this.getEthProvider().then(function(t){return new n.default(t.ethProvider,t.ethSigner,{ipfsConfig:r.default.ipfs}).init().then(function(t){return e.set("kredits",t),e.currentUserAccounts&&e.currentUserAccounts.length>0&&e.getCurrentUser.then(function(t){e.set("currentUser",t)}),t})})},totalSupply:Ember.computed(function(){return this.kredits.Token.functions.totalSupply()}),contributors:[],proposals:[],loadContributorsAndProposals:function(){var e=this
return this.getContributors().then(function(t){return e.contributors.pushObjects(t)}).then(function(){return e.getProposals()}).then(function(t){return e.proposals.pushObjects(t)})},addContributor:function(e){return console.debug("[kredits] add contributor",e),this.kredits.Contributor.add(e).then(function(t){return console.debug("[kredits] add contributor response",t),o.default.create(e)})},getContributors:function(){return this.kredits.Contributor.all().then(function(e){return e.map(function(e){return o.default.create(e)})})},addProposal:function(e){var t=this
return console.debug("[kredits] add proposal",e),this.kredits.Operator.addProposal(e).then(function(n){return console.debug("[kredits] add proposal response",n),e.contributor=t.contributors.findBy("id",e.contributorId),s.default.create(e)})},getProposals:function(){var e=this
return this.kredits.Operator.all().then(function(t){return t.map(function(t){return t.contributor=e.contributors.findBy("id",t.contributorId.toString()),s.default.create(t)})})},vote:function(e){return console.debug("[kredits] vote for",e),this.kredits.Operator.functions.vote(e).then(function(e){return console.debug("[kredits] vote response",e),e})},getCurrentUser:Ember.computed("kredits.provider",function(){var e=this
return Ember.isEmpty(this.currentUserAccounts)?Ember.RSVP.resolve():this.kredits.Contributor.functions.getContributorIdByAddress(this.get("currentUserAccounts.firstObject")).then(function(t){return 0===(t=t.toNumber())?Ember.RSVP.resolve():e.kredits.Contributor.getById(t)})}),findProposalById:function(e){return this.proposals.findBy("id",e.toString())},addContractEventHandlers:function(){this.kredits.Operator.on("ProposalCreated",this.handleProposalCreated.bind(this)).on("ProposalVoted",this.handleProposalVoted.bind(this)).on("ProposalExecuted",this.handleProposalExecuted.bind(this)),this.kredits.Token.on("Transfer",this.handleTransfer.bind(this))},handleProposalCreated:function(e){var t=this
this.findProposalById(e)?console.debug("[events] proposal exists, not adding from event"):this.kredits.Operator.getById(e).then(function(e){e.contributor=t.contributors.findBy("id",e.contributorId.toString()),t.proposals.pushObject(s.default.create(e))})},handleProposalVoted:function(e,t,n){var r=this.findProposalById(e)
r&&r.set("votesCount",n)},handleProposalExecuted:function(e,t,n){var r=this.findProposalById(e)
r.get("isExecuted")?console.debug("[events] proposal already executed, not adding from event"):(r.set("executed",!0),this.contributors.findBy("id",t.toString()).incrementProperty("balance",n.toNumber()))},handleTransfer:function(e,t,n){n=n.toNumber(),this.contributors.findBy("address",e).decrementProperty("balance",n),this.contributors.findBy("address",t).incrementProperty("balance",n)}})}),define("kredits-web/templates/application-loading",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"CLjY4Liw",block:'{"symbols":[],"statements":[[1,[20,"loading-spinner"],false],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"kredits-web/templates/application-loading.hbs"}})}),define("kredits-web/templates/application",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"vrOJgdM9",block:'{"symbols":[],"statements":[[6,"header"],[10,"id","topbar"],[8],[0,"\\n "],[6,"h1"],[8],[0,"Kosmos Kredits"],[9],[0,"\\n\\n "],[6,"section"],[10,"id","user-account"],[8],[0,"\\n"],[4,"if",[[22,["kredits","hasAccounts"]]],null,{"statements":[[4,"if",[[22,["kredits","currentUser"]]],null,{"statements":[[0," "],[1,[22,["kredits","currentUser","name"]],false],[0,"\\n "],[4,"if",[[22,["kredits","currentUserIsCore"]]],null,{"statements":[[0,"(core)"]],"parameters":[]},null],[0,"\\n"]],"parameters":[]},null]],"parameters":[]},{"statements":[[0," Anonymous\\n"]],"parameters":[]}],[0," "],[9],[0,"\\n"],[9],[0,"\\n\\n"],[1,[20,"outlet"],false],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"kredits-web/templates/application.hbs"}})}),define("kredits-web/templates/index",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"aExP47oA",block:'{"symbols":[],"statements":[[6,"main"],[10,"id","index"],[8],[0,"\\n\\n "],[6,"section"],[10,"id","people"],[8],[0,"\\n "],[6,"header"],[8],[0,"\\n "],[6,"h2"],[8],[0,"Contributors"],[9],[0,"\\n "],[9],[0,"\\n "],[6,"div"],[10,"class","content"],[8],[0,"\\n "],[1,[26,"contributor-list",null,[["contributors"],[[22,["contributorsSorted"]]]]],false],[0,"\\n\\n "],[6,"p"],[10,"class","stats"],[8],[0,"\\n "],[6,"span"],[10,"class","number"],[8],[1,[26,"await",[[22,["kredits","totalSupply"]]],null],false],[9],[0," kredits issued and distributed among\\n "],[6,"span"],[10,"class","number"],[8],[1,[22,["contributorsWithKredits","length"]],false],[9],[0," contributors.\\n "],[9],[0,"\\n "],[9],[0,"\\n "],[9],[0,"\\n\\n "],[6,"div"],[10,"id","contributions"],[8],[0,"\\n"],[4,"if",[[22,["proposalsOpen"]]],null,{"statements":[[0," "],[6,"section"],[10,"id","proposals-open"],[8],[0,"\\n "],[6,"header"],[8],[0,"\\n "],[6,"h2"],[8],[0,"Unconfirmed Contributions"],[9],[0,"\\n "],[9],[0,"\\n "],[6,"div"],[10,"class","content"],[8],[0,"\\n"],[0," "],[1,[26,"proposal-list",null,[["proposals","confirmProposal","contractInteractionEnabled"],[[22,["proposalsOpenSorted"]],[26,"action",[[21,0,[]],"confirmProposal"],null],[22,["kredits","hasAccounts"]]]]],false],[0,"\\n "],[9],[0,"\\n "],[9],[0,"\\n"]],"parameters":[]},null],[0,"\\n "],[6,"section"],[10,"id","proposals-closed"],[8],[0,"\\n "],[6,"header"],[8],[0,"\\n "],[6,"h2"],[8],[0,"Confirmed Contributions"],[9],[0,"\\n "],[9],[0,"\\n "],[6,"div"],[10,"class","content"],[8],[0,"\\n "],[1,[26,"proposal-list",null,[["proposals","confirmProposal"],[[22,["proposalsClosedSorted"]],[26,"action",[[21,0,[]],"confirmProposal"],null]]]],false],[0,"\\n "],[9],[0,"\\n\\n"],[4,"if",[[22,["kredits","hasAccounts"]]],null,{"statements":[[0," "],[6,"p"],[10,"class","actions"],[8],[0,"\\n "],[4,"link-to",["proposals.new"],null,{"statements":[[0,"Create new proposal"]],"parameters":[]},null],[0,"\\n "],[9],[0,"\\n"]],"parameters":[]},null],[0," "],[9],[0,"\\n "],[9],[0,"\\n\\n"],[4,"if",[[22,["kredits","hasAccounts"]]],null,{"statements":[[0," "],[6,"section"],[10,"id","add-contributor"],[8],[0,"\\n "],[6,"header"],[8],[0,"\\n "],[6,"h2"],[8],[0,"Add Contributor"],[9],[0,"\\n "],[9],[0,"\\n\\n "],[6,"div"],[10,"class","content"],[8],[0,"\\n"],[4,"if",[[22,["kredits","currentUser","isCore"]]],null,{"statements":[[0," "],[1,[26,"add-contributor",null,[["contributors","save"],[[22,["contributors"]],[26,"action",[[21,0,[]],"save"],null]]]],false],[0,"\\n"]],"parameters":[]},{"statements":[[0," Only core team members can add new contributors. Please ask someone to set you up.\\n"]],"parameters":[]}],[0," "],[9],[0,"\\n "],[9],[0,"\\n"]],"parameters":[]},null],[0,"\\n"],[9],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"kredits-web/templates/index.hbs"}})}),define("kredits-web/templates/proposals/new",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBLine truncated
return r&&t.default.utils.isBigNumber(r)?r[n]():r},set:function(r,o){return o=t.default.utils.bigNumberify(o),this.set(e,o),o[n]()}})}}),define("kredits-web/config/environment",[],function(){try{var e="kredits-web/config/environment",t=document.querySelector('meta[name="'+e+'"]').getAttribute("content"),n={default:JSON.parse(unescape(t))}
return Object.defineProperty(n,"__esModule",{value:!0}),n}catch(t){throw new Error('Could not read config from meta tag with name "'+e+'".')}}),runningTests||require("kredits-web/app").default.create({name:"kredits-web",version:"1.0.0+ef0f3ffb"})
//# sourceMappingURL=kredits-web-7a69991339eedc4c173829a3b18a3f7d.map
@@ -0,0 +1,43 @@
"use strict"
define("kredits-web/app",["exports","kredits-web/resolver","ember-load-initializers","kredits-web/config/environment"],function(e,t,n,r){Object.defineProperty(e,"__esModule",{value:!0})
var o=Ember.Application.extend({modulePrefix:r.default.modulePrefix,podModulePrefix:r.default.podModulePrefix,Resolver:t.default});(0,n.default)(o,r.default.modulePrefix),e.default=o}),define("kredits-web/components/add-contributor/component",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Component.extend({kredits:Ember.inject.service(),attributes:{account:null,name:null,kind:"person",url:null,github_username:null,github_uid:null,wiki_username:null,isCore:!1},didInsertElement:function(){this._super.apply(this,arguments),this.reset()},isValidAccount:Ember.computed.notEmpty("account"),isValidName:Ember.computed.notEmpty("name"),isValidURL:Ember.computed.notEmpty("url"),isValidGithubUID:Ember.computed.notEmpty("github_uid"),isValidGithubUsername:Ember.computed.notEmpty("github_username"),isValidWikiUsername:Ember.computed.notEmpty("wiki_username"),isValid:Ember.computed.and("isValidAccount","isValidName","isValidGithubUID"),reset:function(){this.setProperties(this.attributes)},actions:{submit:function(){var e=this
if(this.isValid){var t=Object.keys(this.attributes),n=this.getProperties(t),r=this.save(n)
this.set("inProgress",r),r.then(function(){e.reset(),window.scroll(0,0),window.alert("Contributor added.")})}else alert("Invalid data. Please review and try again.")}}})}),define("kredits-web/components/add-contributor/template",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"CSegBQfj",block:'{"symbols":[],"statements":[[6,"form"],[3,"action",[[21,0,[]],"submit"],[["on"],["submit"]]],[8],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[1,[26,"input",null,[["name","type","id","checked"],["is-core","checkbox","is-core",[22,["isCore"]]]]],false],[0,"\\n "],[6,"label"],[10,"for","is-core"],[10,"class","checkbox"],[8],[0,"\\n Core team member (can add contributors)\\n "],[9],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[1,[26,"input",null,[["name","type","placeholder","value","class"],["account","text","0xF18E631Ea191aE4ebE70046Fcb01a436554421BA4",[22,["account"]],[26,"if",[[22,["isValidAccount"]],"valid",""],null]]]],false],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[6,"select"],[10,"required",""],[11,"onchange",[26,"action",[[21,0,[]],[26,"mut",[[22,["kind"]]],null]],[["value"],["target.value"]]],null],[8],[0,"\\n "],[6,"option"],[10,"value","person"],[11,"selected",[26,"eq",[[22,["kind"]],"person"],null],null],[8],[0,"Person"],[9],[0,"\\n "],[6,"option"],[10,"value","organization"],[11,"selected",[26,"eq",[[22,["kind"]],"organization"],null],null],[8],[0,"Organization"],[9],[0,"\\n "],[9],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[1,[26,"input",null,[["name","type","placeholder","value","class"],["name","text","Name",[22,["name"]],[26,"if",[[22,["isValidName"]],"valid",""],null]]]],false],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[1,[26,"input",null,[["name","type","placeholder","value","class"],["url","text","URL",[22,["url"]],[26,"if",[[22,["isValidURL"]],"valid",""],null]]]],false],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[1,[26,"input",null,[["name","type","placeholder","value","class"],["github_uid","text","GitHub UID (123)",[22,["github_uid"]],[26,"if",[[22,["isValidGithubUID"]],"valid",""],null]]]],false],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[1,[26,"input",null,[["name","type","placeholder","value","class"],["github_username","text","GitHub username",[22,["github_username"]],[26,"if",[[22,["isValidGithubUsername"]],"valid",""],null]]]],false],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[1,[26,"input",null,[["name","type","placeholder","value","class"],["wiki_username","text","Wiki Username",[22,["wiki_username"]],[26,"if",[[22,["isValidWikiUsername"]],"valid",""],null]]]],false],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[10,"class","actions"],[8],[0,"\\n "],[1,[26,"input",null,[["type","disabled","value"],["submit",[26,"is-pending",[[22,["inProgress"]]],null],[26,"if",[[26,"is-pending",[[22,["inProgress"]]],null],"Processing","Save"],null]]]],false],[0,"\\n "],[9],[0,"\\n"],[9],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"kredits-web/components/add-contributor/template.hbs"}})}),define("kredits-web/components/add-proposal/component",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Component.extend({attributes:{contributorId:null,kind:"community",amount:null,description:null,url:null},didInsertElement:function(){this._super.apply(this,arguments),this.reset()},contributors:[],isValidContributor:Ember.computed.notEmpty("contributorId"),isValidAmount:Ember.computed("amount",function(){return parseInt(this.amount,10)>0}),isValidDescription:Ember.computed.notEmpty("description"),isValidUrl:Ember.computed.notEmpty("url"),isValid:Ember.computed.and("isValidContributor","isValidAmount","isValidDescription"),reset:function(){this.setProperties(this.attributes)},actions:{submit:function(){var e=this
if(this.isValid){var t=Object.keys(this.attributes),n=this.getProperties(t),r=this.save(n)
this.set("inProgress",r),r.then(function(){e.reset(),window.scroll(0,0),window.alert("Proposal added.")})}else alert("Invalid data. Please review and try again.")}}})}),define("kredits-web/components/add-proposal/template",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"cM+dvRZ+",block:'{"symbols":["contributor"],"statements":[[6,"form"],[3,"action",[[21,0,[]],"submit"],[["on"],["submit"]]],[8],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[6,"select"],[10,"required",""],[11,"onchange",[26,"action",[[21,0,[]],[26,"mut",[[22,["contributorId"]]],null]],[["value"],["target.value"]]],null],[8],[0,"\\n "],[6,"option"],[10,"value",""],[10,"selected",""],[10,"disabled",""],[10,"hidden",""],[8],[0,"Contributor"],[9],[0,"\\n"],[4,"each",[[22,["contributors"]]],null,{"statements":[[0," "],[6,"option"],[11,"value",[21,1,["id"]],null],[11,"selected",[26,"eq",[[22,["contributorId"]],[21,1,["id"]]],null],null],[8],[1,[21,1,["github_username"]],false],[9],[0,"\\n"]],"parameters":[1]},null],[0," "],[9],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[6,"select"],[10,"required",""],[11,"onchange",[26,"action",[[21,0,[]],[26,"mut",[[22,["kind"]]],null]],[["value"],["target.value"]]],null],[8],[0,"\\n "],[6,"option"],[10,"value","community"],[11,"selected",[26,"eq",[[22,["kind"]],"community"],null],null],[8],[0,"Community"],[9],[0,"\\n "],[6,"option"],[10,"value","design"],[11,"selected",[26,"eq",[[22,["kind"]],"design"],null],null],[8],[0,"Design"],[9],[0,"\\n "],[6,"option"],[10,"value","dev"],[11,"selected",[26,"eq",[[22,["kind"]],"dev"],null],null],[8],[0,"Development"],[9],[0,"\\n "],[6,"option"],[10,"value","docs"],[11,"selected",[26,"eq",[[22,["kind"]],"docs"],null],null],[8],[0,"Documentation"],[9],[0,"\\n "],[6,"option"],[10,"value","ops"],[11,"selected",[26,"eq",[[22,["kind"]],"ops"],null],null],[8],[0,"IT Operations"],[9],[0,"\\n "],[9],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[1,[26,"input",null,[["type","placeholder","value","class"],["text","100",[22,["amount"]],[26,"if",[[22,["isValidAmount"]],"valid",""],null]]]],false],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[1,[26,"input",null,[["type","placeholder","value","class"],["text","Description",[22,["description"]],[26,"if",[[22,["isValidDescription"]],"valid",""],null]]]],false],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[1,[26,"input",null,[["type","placeholder","value","class"],["text","URL (optional)",[22,["url"]],[26,"if",[[22,["isValidUrl"]],"valid",""],null]]]],false],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[10,"class","actions"],[8],[0,"\\n "],[1,[26,"input",null,[["type","disabled","value"],["submit",[26,"is-pending",[[22,["inProgress"]]],null],[26,"if",[[26,"is-pending",[[22,["inProgress"]]],null],"Processing","Save"],null]]]],false],[0,"\\n "],[4,"link-to",["index"],null,{"statements":[[0,"Back"]],"parameters":[]},null],[0,"\\n "],[9],[0,"\\n"],[9],[0,"\\n\\n"]],"hasEval":false}',meta:{moduleName:"kredits-web/components/add-proposal/template.hbs"}})}),define("kredits-web/components/contributor-list/component",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Component.extend({tagName:"table",classNames:"contributor-list",selectedContributor:null,actions:{toggleContributorInfo:function(e){e.get("showMetadata")?e.set("showMetadata",!1):(this.contributors.setEach("showMetadata",!1),e.set("showMetadata",!0))}}})}),define("kredits-web/components/contributor-list/template",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"1c6etkaE",block:'{"symbols":["contributor"],"statements":[[6,"tbody"],[8],[0,"\\n"],[4,"each",[[22,["contributors"]]],null,{"statements":[[0," "],[6,"tr"],[11,"class",[27,[[26,"if",[[21,1,["isCurrentUser"]],"current-user"],null]]]],[3,"action",[[21,0,[]],"toggleContributorInfo",[21,1,[]]]],[8],[0,"\\n "],[6,"td"],[10,"class","person"],[8],[0,"\\n "],[6,"img"],[10,"class","avatar"],[11,"src",[21,1,["avatarURL"]],null],[8],[9],[0,"\\n "],[1,[21,1,["name"]],false],[0,"\\n "],[9],[0,"\\n "],[6,"td"],[10,"class","kredits"],[8],[0,"\\n "],[6,"span"],[10,"class","amount"],[8],[1,[21,1,["balance"]],false],[9],[0,"\\n "],[6,"span"],[10,"class","symbol"],[8],[0,"₭S"],[9],[0,"\\n "],[9],[0,"\\n "],[9],[0,"\\n "],[6,"tr"],[11,"class",[27,["metadata ",[26,"if",[[21,1,["isCurrentUser"]],"current-user"],null]," ",[26,"if",[[21,1,["showMetadata"]],"visible"],null]]]],[8],[0,"\\n "],[6,"td"],[10,"colspan","2"],[8],[0,"\\n "],[6,"ul"],[8],[0,"\\n "],[6,"li"],[8],[6,"a"],[11,"href",[27,["https://testnet.etherscan.io/address/",[21,1,["account"]]]]],[8],[0,"Inspect Ethereum transactions"],[9],[9],[0,"\\n"],[4,"if",[[21,1,["ipfsHash"]]],null,{"statements":[[0," "],[6,"li"],[8],[6,"a"],[11,"href",[27,["https://ipfs.io/ipfs/",[21,1,[Line truncated
return this.kredits.addContributor(e).then(function(e){return t.contributors.pushObject(e),e})}}})}),define("kredits-web/controllers/proposals/new",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Controller.extend({kredits:Ember.inject.service(),contributors:Ember.computed.alias("kredits.contributors"),minedContributors:Ember.computed.filterBy("contributors","id"),actions:{save:function(e){var t=this,n=this.contributors.findBy("id",e.contributorId)
return e.contributorIpfsHash=n.get("ipfsHash"),this.kredits.addProposal(e).then(function(e){return t.transitionToRoute("index"),e})}}})}),define("kredits-web/helpers/and",["exports","ember-truth-helpers/helpers/and"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"and",{enumerable:!0,get:function(){return t.and}})}),define("kredits-web/helpers/app-version",["exports","kredits-web/config/environment","ember-cli-app-version/utils/regexp"],function(e,t,n){Object.defineProperty(e,"__esModule",{value:!0}),e.appVersion=o
var r=t.default.APP.version
function o(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}
return t.hideSha?r.match(n.versionRegExp)[0]:t.hideVersion?r.match(n.shaRegExp)[0]:r}e.default=Ember.Helper.helper(o)}),define("kredits-web/helpers/await",["exports","ember-promise-helpers/helpers/await"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("kredits-web/helpers/eq",["exports","ember-truth-helpers/helpers/equal"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"equal",{enumerable:!0,get:function(){return t.equal}})}),define("kredits-web/helpers/gt",["exports","ember-truth-helpers/helpers/gt"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"gt",{enumerable:!0,get:function(){return t.gt}})}),define("kredits-web/helpers/gte",["exports","ember-truth-helpers/helpers/gte"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"gte",{enumerable:!0,get:function(){return t.gte}})}),define("kredits-web/helpers/is-array",["exports","ember-truth-helpers/helpers/is-array"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"isArray",{enumerable:!0,get:function(){return t.isArray}})}),define("kredits-web/helpers/is-equal",["exports","ember-truth-helpers/helpers/is-equal"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"isEqual",{enumerable:!0,get:function(){return t.isEqual}})}),define("kredits-web/helpers/is-fulfilled",["exports","ember-promise-helpers/helpers/is-fulfilled"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"isFulfilled",{enumerable:!0,get:function(){return t.isFulfilled}})}),define("kredits-web/helpers/is-pending",["exports","ember-promise-helpers/helpers/is-pending"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"isPending",{enumerable:!0,get:function(){return t.isPending}})}),define("kredits-web/helpers/is-rejected",["exports","ember-promise-helpers/helpers/is-rejected"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"isRejected",{enumerable:!0,get:function(){return t.isRejected}})}),define("kredits-web/helpers/lt",["exports","ember-truth-helpers/helpers/lt"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"lt",{enumerable:!0,get:function(){return t.lt}})}),define("kredits-web/helpers/lte",["exports","ember-truth-helpers/helpers/lte"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"lte",{enumerable:!0,get:function(){return t.lte}})}),define("kredits-web/helpers/not-eq",["exports","ember-truth-helpers/helpers/not-equal"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"notEq",{enumerable:!0,get:function(){return t.notEq}})}),define("kredits-web/helpers/not",["exports","ember-truth-helpers/helpers/not"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"not",{enumerable:!0,get:function(){return t.not}})}),define("kredits-web/helpers/or",["exports","ember-truth-helpers/helpers/or"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"or",{enumerable:!0,get:function(){return t.or}})})
define("kredits-web/helpers/promise-all",["exports","ember-promise-helpers/helpers/promise-all"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"promiseAll",{enumerable:!0,get:function(){return t.promiseAll}})}),define("kredits-web/helpers/promise-hash",["exports","ember-promise-helpers/helpers/promise-hash"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"promiseHash",{enumerable:!0,get:function(){return t.promiseHash}})}),define("kredits-web/helpers/promise-rejected-reason",["exports","ember-promise-helpers/helpers/promise-rejected-reason"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("kredits-web/helpers/xor",["exports","ember-truth-helpers/helpers/xor"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"xor",{enumerable:!0,get:function(){return t.xor}})}),define("kredits-web/initializers/app-version",["exports","ember-cli-app-version/initializer-factory","kredits-web/config/environment"],function(e,t,n){Object.defineProperty(e,"__esModule",{value:!0})
var r=void 0,o=void 0
n.default.APP&&(r=n.default.APP.name,o=n.default.APP.version),e.default={name:"App Version",initialize:(0,t.default)(r,o)}}),define("kredits-web/initializers/container-debug-adapter",["exports","ember-resolver/resolvers/classic/container-debug-adapter"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default={name:"container-debug-adapter",initialize:function(){var e=arguments[1]||arguments[0]
e.register("container-debug-adapter:main",t.default),e.inject("container-debug-adapter:main","namespace","application:main")}}}),define("kredits-web/initializers/export-application-global",["exports","kredits-web/config/environment"],function(e,t){function n(){var e=arguments[1]||arguments[0]
if(!1!==t.default.exportApplicationGlobal){var n
if("undefined"!=typeof window)n=window
else if("undefined"!=typeof global)n=global
else{if("undefined"==typeof self)return
n=self}var r,o=t.default.exportApplicationGlobal
r="string"==typeof o?o:Ember.String.classify(t.default.modulePrefix),n[r]||(n[r]=e,e.reopen({willDestroy:function(){this._super.apply(this,arguments),delete n[r]}}))}}Object.defineProperty(e,"__esModule",{value:!0}),e.initialize=n,e.default={name:"export-application-global",initialize:n}}),define("kredits-web/models/contributor",["exports","kredits-web/utils/cps/bignumber"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Object.extend({id:(0,t.default)("idRaw","toString"),account:null,balance:(0,t.default)("balanceRaw","toNumber"),isCore:!1,ipfsHash:null,kind:null,name:null,url:null,github_username:null,github_uid:null,wiki_username:null,ipfsData:"",isCurrentUser:!1,avatarURL:Ember.computed("github_uid",function(){var e=this.github_uid
if(e)return"https://avatars2.githubusercontent.com/u/"+e+"?v=3&s=128"})})}),define("kredits-web/models/proposal",["exports","kredits-web/utils/cps/bignumber"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Object.extend({id:(0,t.default)("idRaw","toString"),creatorAccount:null,contributorId:(0,t.default)("contributorIdRaw","toString"),amount:(0,t.default)("amountRaw","toNumber"),votesCount:(0,t.default)("votesCountRaw","toNumber"),votesNeeded:(0,t.default)("votesNeededRaw","toNumber"),executed:null,ipfsHash:null,isExecuted:Ember.computed.alias("executed"),kind:null,description:null,details:{},url:null,ipfsData:""})}),define("kredits-web/resolver",["exports","ember-resolver"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=t.default}),define("kredits-web/router",["exports","kredits-web/config/environment"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0})
var n=Ember.Router.extend({location:t.default.locationType,rootURL:t.default.rootURL})
n.map(function(){this.route("proposals",function(){this.route("new")})}),e.default=n}),define("kredits-web/routes/application",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Route.extend({kredits:Ember.inject.service(),beforeModel:function(e){var t=this.kredits
return t.setup().then(function(){t.get("accountNeedsUnlock")&&confirm("It looks like you have an Ethereum wallet available. Please unlock your account.")&&e.retry()}).catch(function(e){console.log("Error initializing Kredits",e)})},afterModel:function(){var e=this
return this.kredits.loadContributorsAndProposals().then(function(){e.kredits.addContractEventHandlers()})}})}),define("kredits-web/services/ajax",["exports","ember-ajax/services/ajax"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("kredits-web/services/kredits",["exports","npm:ethers","npm:kredits-contracts","kredits-web/config/environment","kredits-web/models/contributor","kredits-web/models/proposal"],function(e,t,n,r,o,s){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Service.extend({currentUserAccounts:null,currentUser:null,currentUserIsContributor:Ember.computed.notEmpty("currentUser"),currentUserIsCore:Ember.computed.alias("currentUser.isCore"),hasAccounts:Ember.computed.notEmpty("currentUserAccounts"),accountNeedsUnlock:Ember.computed("currentUserAccounts",function(){return this.currentUserAccounts&&Ember.isEmpty(this.currentUserAccounts)}),getEthProvider:function(){var e=this
return new Ember.RSVP.Promise(function(n){var o=void 0,s=void 0
void 0!==window.web3?(console.debug("[kredits] Using user-provided instance, e.g. from Mist browser or Metamask"),s=parseInt(window.web3.version.network),(o=new t.default.providers.Web3Provider(window.web3.currentProvider,{chainId:s})).listAccounts().then(function(t){e.set("currentUserAccounts",t)
var r=0===t.length?null:o.getSigner()
n({ethProvider:o,ethSigner:r})})):(console.debug("[kredits] Creating new instance from npm module class"),s=parseInt(r.default.contractMetadata.networkId),console.debug("[kredits] networkId="+s+" providerURL: "+r.default.web3ProviderUrl),o=new t.default.providers.JsonRpcProvider(r.default.web3ProviderUrl,{chainId:s}),n({ethProvider:o,ethSigner:null}))})},setup:function(){var e=this
return this.getEthProvider().then(function(t){return new n.default(t.ethProvider,t.ethSigner,{ipfsConfig:r.default.ipfs}).init().then(function(t){return e.set("kredits",t),e.currentUserAccounts&&e.currentUserAccounts.length>0&&e.getCurrentUser.then(function(t){e.set("currentUser",t)}),t})})},totalSupply:Ember.computed(function(){return this.kredits.Token.functions.totalSupply()}),contributors:[],proposals:[],loadContributorsAndProposals:function(){var e=this
return this.getContributors().then(function(t){return e.contributors.pushObjects(t)}).then(function(){return e.getProposals()}).then(function(t){return e.proposals.pushObjects(t)})},addContributor:function(e){return console.debug("[kredits] add contributor",e),this.kredits.Contributor.add(e).then(function(t){return console.debug("[kredits] add contributor response",t),o.default.create(e)})},getContributors:function(){return this.kredits.Contributor.all().then(function(e){return e.map(function(e){return o.default.create(e)})})},addProposal:function(e){var t=this
return console.debug("[kredits] add proposal",e),this.kredits.Operator.addProposal(e).then(function(n){return console.debug("[kredits] add proposal response",n),e.contributor=t.contributors.findBy("id",e.contributorId),s.default.create(e)})},getProposals:function(){var e=this
return this.kredits.Operator.all().then(function(t){return t.map(function(t){return t.contributor=e.contributors.findBy("id",t.contributorId.toString()),s.default.create(t)})})},vote:function(e){return console.debug("[kredits] vote for",e),this.kredits.Operator.functions.vote(e).then(function(e){return console.debug("[kredits] vote response",e),e})},getCurrentUser:Ember.computed("kredits.provider",function(){var e=this
return Ember.isEmpty(this.currentUserAccounts)?Ember.RSVP.resolve():this.kredits.Contributor.functions.getContributorIdByAddress(this.get("currentUserAccounts.firstObject")).then(function(t){return 0===(t=t.toNumber())?Ember.RSVP.resolve():e.kredits.Contributor.getById(t)})}),findProposalById:function(e){return this.proposals.findBy("id",e.toString())},addContractEventHandlers:function(){this.kredits.Operator.on("ProposalCreated",this.handleProposalCreated.bind(this)).on("ProposalVoted",this.handleProposalVoted.bind(this)).on("ProposalExecuted",this.handleProposalExecuted.bind(this)),this.kredits.Token.on("Transfer",this.handleTransfer.bind(this))},handleProposalCreated:function(e){var t=this
this.findProposalById(e)?console.debug("[events] proposal exists, not adding from event"):this.kredits.Operator.getById(e).then(function(e){e.contributor=t.contributors.findBy("id",e.contributorId.toString()),t.proposals.pushObject(s.default.create(e))})},handleProposalVoted:function(e,t,n){var r=this.findProposalById(e)
r&&r.set("votesCount",n)},handleProposalExecuted:function(e,t,n){var r=this.findProposalById(e)
r.get("isExecuted")?console.debug("[events] proposal already executed, not adding from event"):(r.set("executed",!0),this.contributors.findBy("id",t.toString()).incrementProperty("balance",n.toNumber()))},handleTransfer:function(e,t,n){n=n.toNumber(),this.contributors.findBy("address",e).decrementProperty("balance",n),this.contributors.findBy("address",t).incrementProperty("balance",n)}})}),define("kredits-web/templates/application-loading",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"CLjY4Liw",block:'{"symbols":[],"statements":[[1,[20,"loading-spinner"],false],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"kredits-web/templates/application-loading.hbs"}})}),define("kredits-web/templates/application",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"Lp1+Ni2p",block:'{"symbols":[],"statements":[[6,"main"],[8],[0,"\\n "],[1,[20,"outlet"],false],[0,"\\n"],[9],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"kredits-web/templates/application.hbs"}})}),define("kredits-web/templates/index",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"Vx25wHka",block:'{"symbols":[],"statements":[[4,"if",[[22,["kredits","hasAccounts"]]],null,{"statements":[[0," "],[6,"section"],[10,"id","user-account"],[8],[0,"\\n"],[4,"if",[[22,["kredits","currentUser"]]],null,{"statements":[[0," "],[1,[22,["kredits","currentUser","name"]],false],[0,"\\n"],[4,"if",[[22,["kredits","currentUserIsCore"]]],null,{"statements":[[0," (core)\\n"]],"parameters":[]},null],[0," Account: "],[1,[22,["kredits","currentUser","account"]],false],[0,"\\n"]],"parameters":[]},null],[0," "],[9],[0,"\\n"]],"parameters":[]},null],[0,"\\n"],[6,"section"],[10,"id","contributors"],[8],[0,"\\n "],[6,"header"],[8],[0,"\\n "],[6,"h2"],[8],[0,"Kosmos Contributors"],[9],[0,"\\n "],[9],[0,"\\n "],[6,"div"],[10,"class","content"],[8],[0,"\\n "],[1,[26,"contributor-list",null,[["contributors"],[[22,["contributorsSorted"]]]]],false],[0,"\\n\\n "],[6,"p"],[10,"class","stats"],[8],[0,"\\n "],[6,"span"],[10,"class","number"],[8],[1,[26,"await",[[22,["kredits","totalSupply"]]],null],false],[9],[0," kredits issued and distributed among\\n "],[6,"span"],[10,"class","number"],[8],[1,[22,["contributorsWithKredits","length"]],false],[9],[0," contributors.\\n "],[9],[0,"\\n "],[9],[0,"\\n"],[9],[0,"\\n\\n"],[4,"if",[[22,["proposalsOpen"]]],null,{"statements":[[0," "],[6,"section"],[10,"id","proposals-open"],[8],[0,"\\n "],[6,"header"],[8],[0,"\\n "],[6,"h2"],[8],[0,"Open Proposals"],[9],[0,"\\n "],[9],[0,"\\n "],[6,"div"],[10,"class","content"],[8],[0,"\\n"],[0," "],[1,[26,"proposal-list",null,[["proposals","confirmProposal","contractInteractionEnabled"],[[22,["proposalsOpenSorted"]],[26,"action",[[21,0,[]],"confirmProposal"],null],[22,["kredits","hasAccounts"]]]]],false],[0,"\\n\\n"],[4,"if",[[22,["kredits","hasAccounts"]]],null,{"statements":[[0," "],[6,"p"],[10,"class","actions"],[8],[0,"\\n "],[4,"link-to",["proposals.new"],null,{"statements":[[0,"Create new proposal"]],"parameters":[]},null],[0,"\\n "],[9],[0,"\\n"]],"parameters":[]},null],[0," "],[9],[0,"\\n "],[9],[0,"\\n"]],"parameters":[]},null],[0,"\\n"],[6,"section"],[10,"id","proposals-closed"],[8],[0,"\\n "],[6,"header"],[8],[0,"\\n "],[6,"h2"],[8],[0,"Closed Proposals"],[9],[0,"\\n "],[9],[0,"\\n "],[6,"div"],[10,"class","content"],[8],[0,"\\n "],[1,[26,"proposal-list",null,[["proposals","confirmProposal"],[[22,["proposalsClosedSorted"]],[26,"action",[[21,0,[]],"confirmProposal"],null]]]],false],[0,"\\n\\n"],[4,"if",[[22,["kredits","hasAccounts"]]],null,{"statements":[[0," "],[6,"p"],[10,"class","actions"],[8],[0,"\\n "],[4,"link-to",["proposals.new"],null,{"statements":[[0,"Create new proposal"]],"parameters":[]},null],[0,"\\n "],[9],[0,"\\n"]],"parameters":[]},null],[0," "],[9],[0,"\\n"],[9],[0,"\\n\\n"],[6,"section"],[10,"id","add-contributor"],[8],[0,"\\n "],[6,"header"],[8],[0,"\\n "],[6,"h2"],[8],[0,"Add Contributor"],[9],[0,"\\n "],[9],[0,"\\n\\n "],[6,"div"],[10,"class","content"],[8],[0,"\\n"],[4,"if",[[22,["kredits","currentUser","isCore"]]],null,{"statements":[[0," "],[1,[26,"add-contributor",null,[["contributors","save"],[[22,["contributors"]],[26,"action",[[21,0,[]],"save"],null]]]],false],[0,"\\n"]],"parameters":[]},{"statements":[[0," Only core team members can add new contributors. Please ask someone to set you up.\\n"]],"parameters":[]}],[0," "],[9],[0,"\\n"],[9],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"kredits-web/templates/index.hbs"}})}),define("kredits-web/templates/proposals/new",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"AndvFYbw",block:'{"symbols":[],"statements":[[6,"section"],[10,"id","add-proposal"],[8Line truncated
return r&&t.default.utils.isBigNumber(r)?r[n]():r},set:function(r,o){return o=t.default.utils.bigNumberify(o),this.set(e,o),o[n]()}})}}),define("kredits-web/config/environment",[],function(){try{var e="kredits-web/config/environment",t=document.querySelector('meta[name="'+e+'"]').getAttribute("content"),n={default:JSON.parse(unescape(t))}
return Object.defineProperty(n,"__esModule",{value:!0}),n}catch(t){throw new Error('Could not read config from meta tag with name "'+e+'".')}}),runningTests||require("kredits-web/app").default.create({name:"kredits-web",version:"1.0.0+575c1a11"})
//# sourceMappingURL=kredits-web-1e74c12706219f926f222478125c5637.map
@@ -0,0 +1 @@
@charset "UTF-8";body,button,h1,h2,h3,h4,h5,input{font-family:"Open Sans",sans-serif;font-weight:300}#topbar h1,button,input[type=submit]{text-transform:uppercase;display:inline-block}*{margin:0;padding:0;box-sizing:border-box;font-size:14px}:active,:focus,:hover{outline:0;-webkit-tap-highlight-color:rgba(255,255,255,0);-webkit-tap-highlight-color:transparent}main{padding:1rem}main#index{width:100%;display:grid;grid-row-gap:2rem;grid-template-areas:"stats" "contributions"}main section{margin-bottom:5rem}main section:first-of-type{margin-top:2rem}main section header{padding-bottom:3rem;text-align:center}body{background-image:linear-gradient(to bottom,rgba(22,21,40,.4),rgba(0,0,0,.75)),url(/img/bg-947d3bf6bb15a1a3b07afcba4c307690.jpg);background-repeat:none;background-attachment:fixed;color:#fff}@media screen and (min-width:900px){body{background-size:cover}}button,h1,h2,h3,h4,h5,input{font-size:1rem}section h2{font-size:1.4rem;color:#68d7fb}section#people .content p.stats{padding-top:3rem;font-size:1rem;color:#fff;text-align:center}section#people .content p.stats span.number{font-weight:600}button,input[type=submit],ul.contribution-list li .amount,ul.contribution-list li .recipient,ul.proposal-list li .amount,ul.proposal-list li .recipient,ul.proposal-list li .symbol{font-weight:500}section#contributions-by-type .chart{width:50%;margin-left:auto;margin-right:auto}@media (max-width:600px){main section{margin-bottom:5rem}main section header{padding-bottom:2rem}section#people .content p.stats{padding-top:2rem}section#contributions-by-type .chart{width:75%}}section#proposals-closed .actions,section#proposals-open .actions{padding-top:3rem;font-size:1rem;color:#68d7fb;text-align:center}@media (max-width:600px){section#proposals-closed .actions,section#proposals-open .actions{padding-top:2rem}}section#proposals-closed .actions a,section#proposals-open .actions a{color:#68d7fb}button,input[type=submit]{border:1px solid #161528;background-color:rgba(22,21,40,.6);color:#68d7fb;border-radius:3px;cursor:pointer;letter-spacing:.1em}button:hover,input[type=submit]:hover{background-color:rgba(22,21,40,.8)}@media (min-width:550px){main#index{grid-column-gap:4rem;grid-row-gap:2rem;grid-template-columns:2fr 4fr;grid-template-areas:"stats contributions"}section h2{font-size:2rem}}.loading-spinner,table.contributor-list tr td.kredits .amount{font-size:1.4rem}#topbar{height:3rem;padding:0 1rem;line-height:3rem;background-color:rgba(0,0,0,.3)}#topbar section#user-account{display:inline-block;float:right}@keyframes pulse{from{opacity:.1}to{opacity:.6}}.loading-spinner{margin-top:12rem;text-align:center;color:#68d7fb}@media (max-width:600px){.loading-spinner{margin-top:6rem}main section#contributions-confirmed,main section#contributions-unconfirmed{margin-top:0}}.loading-spinner svg{width:200px;height:200px;margin-bottom:2rem}.loading-spinner svg #path-comet{fill:#68d7fb;opacity:.1;animation-name:pulse;animation-iteration-count:infinite;animation-timing-function:ease-in-out;animation-direction:alternate;animation-duration:1s}table.contributor-list{width:100%;border-collapse:collapse}table.contributor-list tr{border-bottom:1px solid rgba(255,255,255,.2);background-color:rgba(255,255,255,.1)}table.contributor-list tr:first-of-type{border-top:1px solid rgba(255,255,255,.2)}table.contributor-list tr.current-user{background-color:rgba(255,255,255,.2)}table.contributor-list tr.metadata{height:0;transition:all .2s ease-out}table.contributor-list tr.metadata td{padding:0 1.2rem}table.contributor-list tr.metadata a{color:#68d7fb}table.contributor-list tr.metadata a:active,table.contributor-list tr.metadata a:hover{color:#fff}table.contributor-list tr.metadata ul{list-style:none;display:block;overflow:hidden;height:0;transition:all .2s ease-out}table.contributor-list tr.metadata ul li{display:inline}table.contributor-list tr.metadata ul li+li{margin-left:1rem}table.contributor-list tr.metadata.visible,table.contributor-list tr.metadata.visible ul{height:auto}table.contributor-list tr td{padding:0 1.2rem;line-height:4.2rem}table.contributor-list tr td.person{text-align:left;font-size:1.4rem}table.contributor-list tr td.person img.avatar{margin-right:.2rem}table.contributor-list tr td.kredits{text-align:right}table.contributor-list tr td.kredits .symbol{font-size:1rem;padding-left:.2rem}table.contributor-list tr td pre{line-height:1rem;padding-bottom:1rem}section#add-contributor form p,section#add-proposal form p{margin-bottom:1rem}section#add-contributor form p.actions,section#add-proposal form p.actions{padding-top:1rem;text-align:center}section#add-contributor form p.actions a,section#add-proposal form p.actions a{color:#68d7fb;margin-left:1rem}section#add-contributor form input[type=text],section#add-contributor form select,section#add-proposal form input[type=text],section#add-proposal form select{width:100%;padding:1rem;border:none;border-bottom:1px solid rgba(255,255,255,.2);background-color:rgba(22,21,40,.3);color:#fff;font-size:1.2rLine truncated
@@ -0,0 +1 @@
{"version":3,"sources":["vendor/ember-cli/app-prefix.js","kredits-web/app.js","kredits-web/components/add-contributor/component.js","kredits-web/components/add-contributor/template.js","kredits-web/components/add-proposal/component.js","kredits-web/components/add-proposal/template.js","kredits-web/components/chart-contributions-by-type/component.js","kredits-web/components/chart-contributions-by-type/template.js","kredits-web/components/contribution-list/component.js","kredits-web/components/contribution-list/template.js","kredits-web/components/contributor-list/component.js","kredits-web/components/contributor-list/template.js","kredits-web/components/ember-chart.js","kredits-web/components/loading-spinner/component.js","kredits-web/components/loading-spinner/template.js","kredits-web/components/proposal-list/component.js","kredits-web/components/proposal-list/template.js","kredits-web/components/user-avatar/component.js","kredits-web/components/user-avatar/template.js","kredits-web/controllers/application.js","kredits-web/controllers/index.js","kredits-web/controllers/proposals/new.js","kredits-web/helpers/and.js","kredits-web/helpers/app-version.js","kredits-web/helpers/await.js","kredits-web/helpers/eq.js","kredits-web/helpers/gt.js","kredits-web/helpers/gte.js","kredits-web/helpers/is-array.js","kredits-web/helpers/is-current-user.js","kredits-web/helpers/is-equal.js","kredits-web/helpers/is-fulfilled.js","kredits-web/helpers/is-pending.js","kredits-web/helpers/is-rejected.js","kredits-web/helpers/lt.js","kredits-web/helpers/lte.js","kredits-web/helpers/not-eq.js","kredits-web/helpers/not.js","kredits-web/helpers/or.js","kredits-web/helpers/promise-all.js","kredits-web/helpers/promise-hash.js","kredits-web/helpers/promise-rejected-reason.js","kredits-web/helpers/xor.js","kredits-web/initializers/app-version.js","kredits-web/initializers/container-debug-adapter.js","kredits-web/initializers/export-application-global.js","kredits-web/models/contribution.js","kredits-web/models/contributor.js","kredits-web/models/proposal.js","kredits-web/resolver.js","kredits-web/router.js","kredits-web/routes/application.js","kredits-web/services/ajax.js","kredits-web/services/kredits.js","kredits-web/templates/application-loading.js","kredits-web/templates/application.js","kredits-web/templates/index.js","kredits-web/templates/proposals/new.js","kredits-web/utils/cps/bignumber.js","kredits-web/utils/cps/kredits.js","kredits-web/utils/format-kredits.js","vendor/ember-cli/app-config.js","vendor/ember-cli/app-boot.js"],"names":["define","_exports","_resolver","_emberLoadInitializers","_environment","Object","defineProperty","value","default","App","Ember","Application","extend","modulePrefix","podModulePrefix","Resolver","_default","Component","kredits","inject","service","attributes","isValidAccount","computed","notEmpty","isValidName","isValidURL","isValidGithubUID","isValidGithubUsername","isValidWikiUsername","isValid","and","init","this","_super","apply","arguments","set","account","name","kind","url","github_username","github_uid","wiki_username","isCore","didInsertElement","reset","setProperties","actions","submit","_this","keys","contributor","getProperties","saved","save","then","window","scroll","alert","HTMLBars","template","id","block","meta","moduleName","contributors","freeze","isValidContributor","isValidAmount","parseInt","amount","isValidDescription","isValidUrl","contributorId","description","proposal","categoryColors","contributions","chartOptions","legend","display","chartData","map","c","reduce","kinds","datasets","data","borderColor","borderWidth","labels","tagName","classNames","selectedContributor","toggleContributorInfo","get","setEach","_emberChart","confirm","proposalId","contractInteractionEnabled","confirmProposal","attributeBindings","src","alias","title","Controller","currentBlock","contributorsWithKredits","filter","gt","contributorsSorting","contributorsSorted","sort","contributionsSorting","contributionsUnconfirmed","contribution","confirmedAt","contributionsConfirmed","_this2","contributionsUnconfirmedSorted","contributionsConfirmedSorted","vetoContribution","vote","transaction","hash","_this3","addContributor","pushObject","minedContributors","filterBy","findBy","contributorIpfsHash","addProposal","transitionToRoute","_and","enumerable","_regexp","appVersion","_","length","undefined","version","APP","versionOnly","hideSha","shaOnly","hideVersion","match","showExtended","versionExtendedRegExp","versionRegExp","shaRegExp","Helper","helper","_await","_equal","equal","_gt","_gte","gte","_isArray","isArray","_slicedToArray","arr","i","Array","_arrayWithHoles","_arr","_n","_d","_e","_s","_i","Symbol","iterator","next","done","push","err","_iterableToArrayLimit","TypeError","_nonIterableRest","currentUser","compute","_ref","isPresent","_isEqual","isEqual","_isFulfilled","isFulfilled","_isPending","isPending","_isRejected","isRejected","_lt","lt","_lte","lte","_notEqual","notEq","_not","not","Line truncated
@@ -0,0 +1 @@
@charset "UTF-8";body,button,h1,h2,h3,h4,h5,input{font-family:"Open Sans",sans-serif;font-weight:300}#topbar h1,button,input[type=submit]{text-transform:uppercase;display:inline-block}*{margin:0;padding:0;box-sizing:border-box;font-size:14px}:active,:focus,:hover{outline:0;-webkit-tap-highlight-color:rgba(255,255,255,0);-webkit-tap-highlight-color:transparent}main{padding:1rem}main#index{width:100%;display:grid;grid-row-gap:2rem;grid-template-areas:"stats" "contributions"}main section{margin-bottom:5rem}main section:first-of-type{margin-top:2rem}main section header{padding-bottom:3rem;text-align:center}body{background-image:linear-gradient(to bottom,rgba(22,21,40,.4),rgba(0,0,0,.75)),url(/img/bg-947d3bf6bb15a1a3b07afcba4c307690.jpg);background-repeat:none;background-attachment:fixed;color:#fff}@media screen and (min-width:900px){body{background-size:cover}}button,h1,h2,h3,h4,h5,input{font-size:1rem}section h2{font-size:1.4rem;color:#68d7fb}section#people .content p.stats{padding-top:3rem;font-size:1rem;color:#fff;text-align:center}section#people .content p.stats span.number{font-weight:600}button,input[type=submit],ul.contribution-list li .amount,ul.contribution-list li .recipient,ul.contribution-list li .symbol,ul.proposal-list li .amount,ul.proposal-list li .recipient,ul.proposal-list li .symbol{font-weight:500}section#contributions-by-type .chart{width:50%;margin-left:auto;margin-right:auto}@media (max-width:600px){main section{margin-bottom:5rem}main section header{padding-bottom:2rem}section#people .content p.stats{padding-top:2rem}section#contributions-by-type .chart{width:75%}}section#proposals-closed .actions,section#proposals-open .actions{padding-top:3rem;font-size:1rem;color:#68d7fb;text-align:center}@media (max-width:600px){section#proposals-closed .actions,section#proposals-open .actions{padding-top:2rem}}section#proposals-closed .actions a,section#proposals-open .actions a{color:#68d7fb}button,input[type=submit]{border:1px solid #161528;background-color:rgba(22,21,40,.6);color:#68d7fb;border-radius:3px;cursor:pointer;letter-spacing:.1em}table.contributor-list tr:first-of-type,ul.contribution-list li:first-of-type,ul.proposal-list li:first-of-type{border-top:1px solid rgba(255,255,255,.2)}button:hover,input[type=submit]:hover{background-color:rgba(22,21,40,.8)}@media (min-width:550px){main#index{grid-column-gap:4rem;grid-row-gap:2rem;grid-template-columns:2fr 4fr;grid-template-areas:"stats contributions"}section h2{font-size:2rem}}#topbar{height:3rem;padding:0 1rem;line-height:3rem;background-color:rgba(0,0,0,.3)}#topbar section#user-account{display:inline-block;float:right}@keyframes pulse{from{opacity:.1}to{opacity:.6}}.loading-spinner{margin-top:12rem;text-align:center;font-size:1.4rem;color:#68d7fb}@media (max-width:600px){.loading-spinner{margin-top:6rem}main section#contributions-confirmed,main section#contributions-unconfirmed{margin-top:0}}.loading-spinner svg{width:200px;height:200px;margin-bottom:2rem}.loading-spinner svg #path-comet{fill:#68d7fb;opacity:.1;animation-name:pulse;animation-iteration-count:infinite;animation-timing-function:ease-in-out;animation-direction:alternate;animation-duration:1s}table.contributor-list{width:100%;border-collapse:collapse}table.contributor-list tr{border-bottom:1px solid rgba(255,255,255,.2);background-color:rgba(255,255,255,.1)}table.contributor-list tr.current-user{background-color:rgba(255,255,255,.2)}table.contributor-list tr.metadata{height:0;transition:all .2s ease-out}table.contributor-list tr.metadata td{padding:0 1.2rem}table.contributor-list tr.metadata a{color:#68d7fb}table.contributor-list tr.metadata a:active,table.contributor-list tr.metadata a:hover{color:#fff}table.contributor-list tr.metadata ul{list-style:none;display:block;overflow:hidden;height:0;transition:all .2s ease-out}table.contributor-list tr.metadata ul li{display:inline}table.contributor-list tr.metadata ul li+li{margin-left:1rem}table.contributor-list tr.metadata.visible,table.contributor-list tr.metadata.visible ul{height:auto}table.contributor-list tr td{padding:0 1.2rem;line-height:4.2rem}table.contributor-list tr td.person{text-align:left;font-size:1.4rem}table.contributor-list tr td.person img.avatar{width:2rem;height:2rem;vertical-align:middle;margin-right:.2rem;border-radius:1rem}table.contributor-list tr td.kredits{text-align:right}table.contributor-list tr td.kredits .amount{font-size:1.4rem}table.contributor-list tr td.kredits .symbol{font-size:1rem;padding-left:.2rem}table.contributor-list tr td pre{line-height:1rem;padding-bottom:1rem}section#add-contributor form p,section#add-proposal form p{margin-bottom:1rem}section#add-contributor form p.actions,section#add-proposal form p.actions{padding-top:1rem;text-align:center}section#add-contributor form p.actions a,section#add-proposal form p.actions a{color:#68d7fb;margin-left:1rem}section#add-contributor form input[type=text],section#add-contributor form select,section#add-proposal form input[type=text],sectioLine truncated
@@ -0,0 +1,43 @@
"use strict"
define("kredits-web/app",["exports","kredits-web/resolver","ember-load-initializers","kredits-web/config/environment"],function(e,t,n,r){Object.defineProperty(e,"__esModule",{value:!0})
var o=Ember.Application.extend({modulePrefix:r.default.modulePrefix,podModulePrefix:r.default.podModulePrefix,Resolver:t.default});(0,n.default)(o,r.default.modulePrefix),e.default=o}),define("kredits-web/components/add-contributor/component",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Component.extend({kredits:Ember.inject.service(),attributes:{account:null,name:null,kind:"person",url:null,github_username:null,github_uid:null,wiki_username:null,isCore:!1},didInsertElement:function(){this._super.apply(this,arguments),this.reset()},isValidAccount:Ember.computed.notEmpty("account"),isValidName:Ember.computed.notEmpty("name"),isValidURL:Ember.computed.notEmpty("url"),isValidGithubUID:Ember.computed.notEmpty("github_uid"),isValidGithubUsername:Ember.computed.notEmpty("github_username"),isValidWikiUsername:Ember.computed.notEmpty("wiki_username"),isValid:Ember.computed.and("isValidAccount","isValidName","isValidGithubUID"),reset:function(){this.setProperties(this.attributes)},actions:{submit:function(){var e=this
if(this.isValid){var t=Object.keys(this.attributes),n=this.getProperties(t),r=this.save(n)
this.set("inProgress",r),r.then(function(){e.reset(),window.scroll(0,0),window.alert("Contributor added.")})}else alert("Invalid data. Please review and try again.")}}})}),define("kredits-web/components/add-contributor/template",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"CSegBQfj",block:'{"symbols":[],"statements":[[6,"form"],[3,"action",[[21,0,[]],"submit"],[["on"],["submit"]]],[8],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[1,[26,"input",null,[["name","type","id","checked"],["is-core","checkbox","is-core",[22,["isCore"]]]]],false],[0,"\\n "],[6,"label"],[10,"for","is-core"],[10,"class","checkbox"],[8],[0,"\\n Core team member (can add contributors)\\n "],[9],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[1,[26,"input",null,[["name","type","placeholder","value","class"],["account","text","0xF18E631Ea191aE4ebE70046Fcb01a436554421BA4",[22,["account"]],[26,"if",[[22,["isValidAccount"]],"valid",""],null]]]],false],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[6,"select"],[10,"required",""],[11,"onchange",[26,"action",[[21,0,[]],[26,"mut",[[22,["kind"]]],null]],[["value"],["target.value"]]],null],[8],[0,"\\n "],[6,"option"],[10,"value","person"],[11,"selected",[26,"eq",[[22,["kind"]],"person"],null],null],[8],[0,"Person"],[9],[0,"\\n "],[6,"option"],[10,"value","organization"],[11,"selected",[26,"eq",[[22,["kind"]],"organization"],null],null],[8],[0,"Organization"],[9],[0,"\\n "],[9],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[1,[26,"input",null,[["name","type","placeholder","value","class"],["name","text","Name",[22,["name"]],[26,"if",[[22,["isValidName"]],"valid",""],null]]]],false],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[1,[26,"input",null,[["name","type","placeholder","value","class"],["url","text","URL",[22,["url"]],[26,"if",[[22,["isValidURL"]],"valid",""],null]]]],false],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[1,[26,"input",null,[["name","type","placeholder","value","class"],["github_uid","text","GitHub UID (123)",[22,["github_uid"]],[26,"if",[[22,["isValidGithubUID"]],"valid",""],null]]]],false],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[1,[26,"input",null,[["name","type","placeholder","value","class"],["github_username","text","GitHub username",[22,["github_username"]],[26,"if",[[22,["isValidGithubUsername"]],"valid",""],null]]]],false],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[1,[26,"input",null,[["name","type","placeholder","value","class"],["wiki_username","text","Wiki Username",[22,["wiki_username"]],[26,"if",[[22,["isValidWikiUsername"]],"valid",""],null]]]],false],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[10,"class","actions"],[8],[0,"\\n "],[1,[26,"input",null,[["type","disabled","value"],["submit",[26,"is-pending",[[22,["inProgress"]]],null],[26,"if",[[26,"is-pending",[[22,["inProgress"]]],null],"Processing","Save"],null]]]],false],[0,"\\n "],[9],[0,"\\n"],[9],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"kredits-web/components/add-contributor/template.hbs"}})}),define("kredits-web/components/add-proposal/component",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Component.extend({attributes:{contributorId:null,kind:"community",amount:null,description:null,url:null},didInsertElement:function(){this._super.apply(this,arguments),this.reset()},contributors:[],isValidContributor:Ember.computed.notEmpty("contributorId"),isValidAmount:Ember.computed("amount",function(){return parseInt(this.amount,10)>0}),isValidDescription:Ember.computed.notEmpty("description"),isValidUrl:Ember.computed.notEmpty("url"),isValid:Ember.computed.and("isValidContributor","isValidAmount","isValidDescription"),reset:function(){this.setProperties(this.attributes)},actions:{submit:function(){var e=this
if(this.isValid){var t=Object.keys(this.attributes),n=this.getProperties(t),r=this.save(n)
this.set("inProgress",r),r.then(function(){e.reset(),window.scroll(0,0),window.alert("Proposal added.")})}else alert("Invalid data. Please review and try again.")}}})}),define("kredits-web/components/add-proposal/template",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"cM+dvRZ+",block:'{"symbols":["contributor"],"statements":[[6,"form"],[3,"action",[[21,0,[]],"submit"],[["on"],["submit"]]],[8],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[6,"select"],[10,"required",""],[11,"onchange",[26,"action",[[21,0,[]],[26,"mut",[[22,["contributorId"]]],null]],[["value"],["target.value"]]],null],[8],[0,"\\n "],[6,"option"],[10,"value",""],[10,"selected",""],[10,"disabled",""],[10,"hidden",""],[8],[0,"Contributor"],[9],[0,"\\n"],[4,"each",[[22,["contributors"]]],null,{"statements":[[0," "],[6,"option"],[11,"value",[21,1,["id"]],null],[11,"selected",[26,"eq",[[22,["contributorId"]],[21,1,["id"]]],null],null],[8],[1,[21,1,["github_username"]],false],[9],[0,"\\n"]],"parameters":[1]},null],[0," "],[9],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[6,"select"],[10,"required",""],[11,"onchange",[26,"action",[[21,0,[]],[26,"mut",[[22,["kind"]]],null]],[["value"],["target.value"]]],null],[8],[0,"\\n "],[6,"option"],[10,"value","community"],[11,"selected",[26,"eq",[[22,["kind"]],"community"],null],null],[8],[0,"Community"],[9],[0,"\\n "],[6,"option"],[10,"value","design"],[11,"selected",[26,"eq",[[22,["kind"]],"design"],null],null],[8],[0,"Design"],[9],[0,"\\n "],[6,"option"],[10,"value","dev"],[11,"selected",[26,"eq",[[22,["kind"]],"dev"],null],null],[8],[0,"Development"],[9],[0,"\\n "],[6,"option"],[10,"value","docs"],[11,"selected",[26,"eq",[[22,["kind"]],"docs"],null],null],[8],[0,"Documentation"],[9],[0,"\\n "],[6,"option"],[10,"value","ops"],[11,"selected",[26,"eq",[[22,["kind"]],"ops"],null],null],[8],[0,"IT Operations"],[9],[0,"\\n "],[9],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[1,[26,"input",null,[["type","placeholder","value","class"],["text","100",[22,["amount"]],[26,"if",[[22,["isValidAmount"]],"valid",""],null]]]],false],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[1,[26,"input",null,[["type","placeholder","value","class"],["text","Description",[22,["description"]],[26,"if",[[22,["isValidDescription"]],"valid",""],null]]]],false],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[1,[26,"input",null,[["type","placeholder","value","class"],["text","URL (optional)",[22,["url"]],[26,"if",[[22,["isValidUrl"]],"valid",""],null]]]],false],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[10,"class","actions"],[8],[0,"\\n "],[1,[26,"input",null,[["type","disabled","value"],["submit",[26,"is-pending",[[22,["inProgress"]]],null],[26,"if",[[26,"is-pending",[[22,["inProgress"]]],null],"Processing","Save"],null]]]],false],[0,"\\n "],[4,"link-to",["index"],null,{"statements":[[0,"Back"]],"parameters":[]},null],[0,"\\n "],[9],[0,"\\n"],[9],[0,"\\n\\n"]],"hasEval":false}',meta:{moduleName:"kredits-web/components/add-proposal/template.hbs"}})}),define("kredits-web/components/contributor-list/component",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Component.extend({tagName:"table",classNames:"contributor-list",selectedContributor:null,actions:{toggleContributorInfo:function(e){e.get("showMetadata")?e.set("showMetadata",!1):(this.contributors.setEach("showMetadata",!1),e.set("showMetadata",!0))}}})}),define("kredits-web/components/contributor-list/template",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"1c6etkaE",block:'{"symbols":["contributor"],"statements":[[6,"tbody"],[8],[0,"\\n"],[4,"each",[[22,["contributors"]]],null,{"statements":[[0," "],[6,"tr"],[11,"class",[27,[[26,"if",[[21,1,["isCurrentUser"]],"current-user"],null]]]],[3,"action",[[21,0,[]],"toggleContributorInfo",[21,1,[]]]],[8],[0,"\\n "],[6,"td"],[10,"class","person"],[8],[0,"\\n "],[6,"img"],[10,"class","avatar"],[11,"src",[21,1,["avatarURL"]],null],[8],[9],[0,"\\n "],[1,[21,1,["name"]],false],[0,"\\n "],[9],[0,"\\n "],[6,"td"],[10,"class","kredits"],[8],[0,"\\n "],[6,"span"],[10,"class","amount"],[8],[1,[21,1,["balance"]],false],[9],[0,"\\n "],[6,"span"],[10,"class","symbol"],[8],[0,"₭S"],[9],[0,"\\n "],[9],[0,"\\n "],[9],[0,"\\n "],[6,"tr"],[11,"class",[27,["metadata ",[26,"if",[[21,1,["isCurrentUser"]],"current-user"],null]," ",[26,"if",[[21,1,["showMetadata"]],"visible"],null]]]],[8],[0,"\\n "],[6,"td"],[10,"colspan","2"],[8],[0,"\\n "],[6,"ul"],[8],[0,"\\n "],[6,"li"],[8],[6,"a"],[11,"href",[27,["https://testnet.etherscan.io/address/",[21,1,["account"]]]]],[8],[0,"Inspect Ethereum transactions"],[9],[9],[0,"\\n"],[4,"if",[[21,1,["ipfsHash"]]],null,{"statements":[[0," "],[6,"li"],[8],[6,"a"],[11,"href",[27,["https://ipfs.io/ipfs/",[21,1,[Line truncated
return this.kredits.addContributor(e).then(function(e){return t.contributors.pushObject(e),e})}}})}),define("kredits-web/controllers/proposals/new",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Controller.extend({kredits:Ember.inject.service(),contributors:Ember.computed.alias("kredits.contributors"),minedContributors:Ember.computed.filterBy("contributors","id"),actions:{save:function(e){var t=this,n=this.contributors.findBy("id",e.contributorId)
return e.contributorIpfsHash=n.get("ipfsHash"),this.kredits.addProposal(e).then(function(e){return t.transitionToRoute("index"),e})}}})}),define("kredits-web/helpers/and",["exports","ember-truth-helpers/helpers/and"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"and",{enumerable:!0,get:function(){return t.and}})}),define("kredits-web/helpers/app-version",["exports","kredits-web/config/environment","ember-cli-app-version/utils/regexp"],function(e,t,n){Object.defineProperty(e,"__esModule",{value:!0}),e.appVersion=o
var r=t.default.APP.version
function o(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}
return t.hideSha?r.match(n.versionRegExp)[0]:t.hideVersion?r.match(n.shaRegExp)[0]:r}e.default=Ember.Helper.helper(o)}),define("kredits-web/helpers/await",["exports","ember-promise-helpers/helpers/await"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("kredits-web/helpers/eq",["exports","ember-truth-helpers/helpers/equal"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"equal",{enumerable:!0,get:function(){return t.equal}})}),define("kredits-web/helpers/gt",["exports","ember-truth-helpers/helpers/gt"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"gt",{enumerable:!0,get:function(){return t.gt}})}),define("kredits-web/helpers/gte",["exports","ember-truth-helpers/helpers/gte"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"gte",{enumerable:!0,get:function(){return t.gte}})}),define("kredits-web/helpers/is-array",["exports","ember-truth-helpers/helpers/is-array"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"isArray",{enumerable:!0,get:function(){return t.isArray}})}),define("kredits-web/helpers/is-equal",["exports","ember-truth-helpers/helpers/is-equal"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"isEqual",{enumerable:!0,get:function(){return t.isEqual}})}),define("kredits-web/helpers/is-fulfilled",["exports","ember-promise-helpers/helpers/is-fulfilled"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"isFulfilled",{enumerable:!0,get:function(){return t.isFulfilled}})}),define("kredits-web/helpers/is-pending",["exports","ember-promise-helpers/helpers/is-pending"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"isPending",{enumerable:!0,get:function(){return t.isPending}})}),define("kredits-web/helpers/is-rejected",["exports","ember-promise-helpers/helpers/is-rejected"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"isRejected",{enumerable:!0,get:function(){return t.isRejected}})}),define("kredits-web/helpers/lt",["exports","ember-truth-helpers/helpers/lt"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"lt",{enumerable:!0,get:function(){return t.lt}})}),define("kredits-web/helpers/lte",["exports","ember-truth-helpers/helpers/lte"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"lte",{enumerable:!0,get:function(){return t.lte}})}),define("kredits-web/helpers/not-eq",["exports","ember-truth-helpers/helpers/not-equal"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"notEq",{enumerable:!0,get:function(){return t.notEq}})}),define("kredits-web/helpers/not",["exports","ember-truth-helpers/helpers/not"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"not",{enumerable:!0,get:function(){return t.not}})}),define("kredits-web/helpers/or",["exports","ember-truth-helpers/helpers/or"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"or",{enumerable:!0,get:function(){return t.or}})})
define("kredits-web/helpers/promise-all",["exports","ember-promise-helpers/helpers/promise-all"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"promiseAll",{enumerable:!0,get:function(){return t.promiseAll}})}),define("kredits-web/helpers/promise-hash",["exports","ember-promise-helpers/helpers/promise-hash"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"promiseHash",{enumerable:!0,get:function(){return t.promiseHash}})}),define("kredits-web/helpers/promise-rejected-reason",["exports","ember-promise-helpers/helpers/promise-rejected-reason"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("kredits-web/helpers/xor",["exports","ember-truth-helpers/helpers/xor"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"xor",{enumerable:!0,get:function(){return t.xor}})}),define("kredits-web/initializers/app-version",["exports","ember-cli-app-version/initializer-factory","kredits-web/config/environment"],function(e,t,n){Object.defineProperty(e,"__esModule",{value:!0})
var r=void 0,o=void 0
n.default.APP&&(r=n.default.APP.name,o=n.default.APP.version),e.default={name:"App Version",initialize:(0,t.default)(r,o)}}),define("kredits-web/initializers/container-debug-adapter",["exports","ember-resolver/resolvers/classic/container-debug-adapter"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default={name:"container-debug-adapter",initialize:function(){var e=arguments[1]||arguments[0]
e.register("container-debug-adapter:main",t.default),e.inject("container-debug-adapter:main","namespace","application:main")}}}),define("kredits-web/initializers/export-application-global",["exports","kredits-web/config/environment"],function(e,t){function n(){var e=arguments[1]||arguments[0]
if(!1!==t.default.exportApplicationGlobal){var n
if("undefined"!=typeof window)n=window
else if("undefined"!=typeof global)n=global
else{if("undefined"==typeof self)return
n=self}var r,o=t.default.exportApplicationGlobal
r="string"==typeof o?o:Ember.String.classify(t.default.modulePrefix),n[r]||(n[r]=e,e.reopen({willDestroy:function(){this._super.apply(this,arguments),delete n[r]}}))}}Object.defineProperty(e,"__esModule",{value:!0}),e.initialize=n,e.default={name:"export-application-global",initialize:n}}),define("kredits-web/models/contributor",["exports","kredits-web/utils/cps/bignumber"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Object.extend({id:(0,t.default)("idRaw","toString"),account:null,balance:(0,t.default)("balanceRaw","toNumber"),isCore:!1,ipfsHash:null,kind:null,name:null,url:null,github_username:null,github_uid:null,wiki_username:null,ipfsData:"",isCurrentUser:!1,avatarURL:Ember.computed("github_uid",function(){var e=this.github_uid
if(e)return"https://avatars2.githubusercontent.com/u/"+e+"?v=3&s=128"})})}),define("kredits-web/models/proposal",["exports","kredits-web/utils/cps/bignumber"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Object.extend({id:(0,t.default)("idRaw","toString"),creatorAccount:null,contributorId:(0,t.default)("contributorIdRaw","toString"),amount:(0,t.default)("amountRaw","toNumber"),votesCount:(0,t.default)("votesCountRaw","toNumber"),votesNeeded:(0,t.default)("votesNeededRaw","toNumber"),executed:null,ipfsHash:null,isExecuted:Ember.computed.alias("executed"),kind:null,description:null,details:{},url:null,ipfsData:""})}),define("kredits-web/resolver",["exports","ember-resolver"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=t.default}),define("kredits-web/router",["exports","kredits-web/config/environment"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0})
var n=Ember.Router.extend({location:t.default.locationType,rootURL:t.default.rootURL})
n.map(function(){this.route("proposals",function(){this.route("new")})}),e.default=n}),define("kredits-web/routes/application",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Route.extend({kredits:Ember.inject.service(),beforeModel:function(e){var t=this.kredits
return t.setup().then(function(){t.get("accountNeedsUnlock")&&confirm("It looks like you have an Ethereum wallet available. Please unlock your account.")&&e.retry()}).catch(function(e){console.log("Error initializing Kredits",e)})},afterModel:function(){var e=this
return this.kredits.loadContributorsAndProposals().then(function(){e.kredits.addContractEventHandlers()})}})}),define("kredits-web/services/ajax",["exports","ember-ajax/services/ajax"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("kredits-web/services/kredits",["exports","npm:ethers","npm:kredits-contracts","kredits-web/config/environment","kredits-web/models/contributor","kredits-web/models/proposal"],function(e,t,n,r,o,s){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Service.extend({currentUserAccounts:null,currentUser:null,currentUserIsContributor:Ember.computed.notEmpty("currentUser"),currentUserIsCore:Ember.computed.alias("currentUser.isCore"),hasAccounts:Ember.computed.notEmpty("currentUserAccounts"),accountNeedsUnlock:Ember.computed("currentUserAccounts",function(){return this.currentUserAccounts&&Ember.isEmpty(this.currentUserAccounts)}),getEthProvider:function(){var e=this
return new Ember.RSVP.Promise(function(n){var o=void 0,s=void 0
void 0!==window.web3?(console.debug("[kredits] Using user-provided instance, e.g. from Mist browser or Metamask"),s=parseInt(window.web3.version.network),(o=new t.default.providers.Web3Provider(window.web3.currentProvider,{chainId:s})).listAccounts().then(function(t){e.set("currentUserAccounts",t)
var r=0===t.length?null:o.getSigner()
n({ethProvider:o,ethSigner:r})})):(console.debug("[kredits] Creating new instance from npm module class"),s=parseInt(r.default.contractMetadata.networkId),console.debug("[kredits] networkId="+s+" providerURL: "+r.default.web3ProviderUrl),o=new t.default.providers.JsonRpcProvider(r.default.web3ProviderUrl,{chainId:s}),n({ethProvider:o,ethSigner:null}))})},setup:function(){var e=this
return this.getEthProvider().then(function(t){return new n.default(t.ethProvider,t.ethSigner,{ipfsConfig:r.default.ipfs}).init().then(function(t){return e.set("kredits",t),e.currentUserAccounts&&e.currentUserAccounts.length>0&&e.getCurrentUser.then(function(t){e.set("currentUser",t)}),t})})},totalSupply:Ember.computed(function(){return this.kredits.Token.functions.totalSupply()}),contributors:[],proposals:[],loadContributorsAndProposals:function(){var e=this
return this.getContributors().then(function(t){return e.contributors.pushObjects(t)}).then(function(){return e.getProposals()}).then(function(t){return e.proposals.pushObjects(t)})},addContributor:function(e){return console.debug("[kredits] add contributor",e),this.kredits.Contributor.add(e).then(function(t){return console.debug("[kredits] add contributor response",t),o.default.create(e)})},getContributors:function(){return this.kredits.Contributor.all().then(function(e){return e.map(function(e){return o.default.create(e)})})},addProposal:function(e){var t=this
return console.debug("[kredits] add proposal",e),this.kredits.Operator.addProposal(e).then(function(n){return console.debug("[kredits] add proposal response",n),e.contributor=t.contributors.findBy("id",e.contributorId),s.default.create(e)})},getProposals:function(){var e=this
return this.kredits.Operator.all().then(function(t){return t.map(function(t){return t.contributor=e.contributors.findBy("id",t.contributorId.toString()),s.default.create(t)})})},vote:function(e){return console.debug("[kredits] vote for",e),this.kredits.Operator.functions.vote(e).then(function(e){return console.debug("[kredits] vote response",e),e})},getCurrentUser:Ember.computed("kredits.provider",function(){var e=this
return Ember.isEmpty(this.currentUserAccounts)?Ember.RSVP.resolve():this.kredits.Contributor.functions.getContributorIdByAddress(this.get("currentUserAccounts.firstObject")).then(function(t){return 0===(t=t.toNumber())?Ember.RSVP.resolve():e.kredits.Contributor.getById(t)})}),findProposalById:function(e){return this.proposals.findBy("id",e.toString())},addContractEventHandlers:function(){this.kredits.Operator.on("ProposalCreated",this.handleProposalCreated.bind(this)).on("ProposalVoted",this.handleProposalVoted.bind(this)).on("ProposalExecuted",this.handleProposalExecuted.bind(this)),this.kredits.Token.on("Transfer",this.handleTransfer.bind(this))},handleProposalCreated:function(e){var t=this
this.findProposalById(e)?console.debug("[events] proposal exists, not adding from event"):this.kredits.Operator.getById(e).then(function(e){e.contributor=t.contributors.findBy("id",e.contributorId.toString()),t.proposals.pushObject(s.default.create(e))})},handleProposalVoted:function(e,t,n){var r=this.findProposalById(e)
r&&r.set("votesCount",n)},handleProposalExecuted:function(e,t,n){var r=this.findProposalById(e)
r.get("isExecuted")?console.debug("[events] proposal already executed, not adding from event"):(r.set("executed",!0),this.contributors.findBy("id",t.toString()).incrementProperty("balance",n.toNumber()))},handleTransfer:function(e,t,n){n=n.toNumber(),this.contributors.findBy("address",e).decrementProperty("balance",n),this.contributors.findBy("address",t).incrementProperty("balance",n)}})}),define("kredits-web/templates/application-loading",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"CLjY4Liw",block:'{"symbols":[],"statements":[[1,[20,"loading-spinner"],false],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"kredits-web/templates/application-loading.hbs"}})}),define("kredits-web/templates/application",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"vrOJgdM9",block:'{"symbols":[],"statements":[[6,"header"],[10,"id","topbar"],[8],[0,"\\n "],[6,"h1"],[8],[0,"Kosmos Kredits"],[9],[0,"\\n\\n "],[6,"section"],[10,"id","user-account"],[8],[0,"\\n"],[4,"if",[[22,["kredits","hasAccounts"]]],null,{"statements":[[4,"if",[[22,["kredits","currentUser"]]],null,{"statements":[[0," "],[1,[22,["kredits","currentUser","name"]],false],[0,"\\n "],[4,"if",[[22,["kredits","currentUserIsCore"]]],null,{"statements":[[0,"(core)"]],"parameters":[]},null],[0,"\\n"]],"parameters":[]},null]],"parameters":[]},{"statements":[[0," Anonymous\\n"]],"parameters":[]}],[0," "],[9],[0,"\\n"],[9],[0,"\\n\\n"],[1,[20,"outlet"],false],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"kredits-web/templates/application.hbs"}})}),define("kredits-web/templates/index",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"aExP47oA",block:'{"symbols":[],"statements":[[6,"main"],[10,"id","index"],[8],[0,"\\n\\n "],[6,"section"],[10,"id","people"],[8],[0,"\\n "],[6,"header"],[8],[0,"\\n "],[6,"h2"],[8],[0,"Contributors"],[9],[0,"\\n "],[9],[0,"\\n "],[6,"div"],[10,"class","content"],[8],[0,"\\n "],[1,[26,"contributor-list",null,[["contributors"],[[22,["contributorsSorted"]]]]],false],[0,"\\n\\n "],[6,"p"],[10,"class","stats"],[8],[0,"\\n "],[6,"span"],[10,"class","number"],[8],[1,[26,"await",[[22,["kredits","totalSupply"]]],null],false],[9],[0," kredits issued and distributed among\\n "],[6,"span"],[10,"class","number"],[8],[1,[22,["contributorsWithKredits","length"]],false],[9],[0," contributors.\\n "],[9],[0,"\\n "],[9],[0,"\\n "],[9],[0,"\\n\\n "],[6,"div"],[10,"id","contributions"],[8],[0,"\\n"],[4,"if",[[22,["proposalsOpen"]]],null,{"statements":[[0," "],[6,"section"],[10,"id","proposals-open"],[8],[0,"\\n "],[6,"header"],[8],[0,"\\n "],[6,"h2"],[8],[0,"Unconfirmed Contributions"],[9],[0,"\\n "],[9],[0,"\\n "],[6,"div"],[10,"class","content"],[8],[0,"\\n"],[0," "],[1,[26,"proposal-list",null,[["proposals","confirmProposal","contractInteractionEnabled"],[[22,["proposalsOpenSorted"]],[26,"action",[[21,0,[]],"confirmProposal"],null],[22,["kredits","hasAccounts"]]]]],false],[0,"\\n "],[9],[0,"\\n "],[9],[0,"\\n"]],"parameters":[]},null],[0,"\\n "],[6,"section"],[10,"id","proposals-closed"],[8],[0,"\\n "],[6,"header"],[8],[0,"\\n "],[6,"h2"],[8],[0,"Confirmed Contributions"],[9],[0,"\\n "],[9],[0,"\\n "],[6,"div"],[10,"class","content"],[8],[0,"\\n "],[1,[26,"proposal-list",null,[["proposals","confirmProposal"],[[22,["proposalsClosedSorted"]],[26,"action",[[21,0,[]],"confirmProposal"],null]]]],false],[0,"\\n "],[9],[0,"\\n\\n"],[4,"if",[[22,["kredits","hasAccounts"]]],null,{"statements":[[0," "],[6,"p"],[10,"class","actions"],[8],[0,"\\n "],[4,"link-to",["proposals.new"],null,{"statements":[[0,"Create new proposal"]],"parameters":[]},null],[0,"\\n "],[9],[0,"\\n"]],"parameters":[]},null],[0," "],[9],[0,"\\n "],[9],[0,"\\n\\n"],[4,"if",[[22,["kredits","hasAccounts"]]],null,{"statements":[[0," "],[6,"section"],[10,"id","add-contributor"],[8],[0,"\\n "],[6,"header"],[8],[0,"\\n "],[6,"h2"],[8],[0,"Add Contributor"],[9],[0,"\\n "],[9],[0,"\\n\\n "],[6,"div"],[10,"class","content"],[8],[0,"\\n"],[4,"if",[[22,["kredits","currentUser","isCore"]]],null,{"statements":[[0," "],[1,[26,"add-contributor",null,[["contributors","save"],[[22,["contributors"]],[26,"action",[[21,0,[]],"save"],null]]]],false],[0,"\\n"]],"parameters":[]},{"statements":[[0," Only core team members can add new contributors. Please ask someone to set you up.\\n"]],"parameters":[]}],[0," "],[9],[0,"\\n "],[9],[0,"\\n"]],"parameters":[]},null],[0,"\\n"],[9],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"kredits-web/templates/index.hbs"}})}),define("kredits-web/templates/proposals/new",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBLine truncated
return r&&t.default.utils.isBigNumber(r)?r[n]():r},set:function(r,o){return o=t.default.utils.bigNumberify(o),this.set(e,o),o[n]()}})}}),define("kredits-web/config/environment",[],function(){try{var e="kredits-web/config/environment",t=document.querySelector('meta[name="'+e+'"]').getAttribute("content"),n={default:JSON.parse(unescape(t))}
return Object.defineProperty(n,"__esModule",{value:!0}),n}catch(t){throw new Error('Could not read config from meta tag with name "'+e+'".')}}),runningTests||require("kredits-web/app").default.create({name:"kredits-web",version:"1.0.0+c074ccf4"})
//# sourceMappingURL=kredits-web-e128ef0dcc297bf39edccd05bee72282.map
@@ -0,0 +1 @@
"use strict";define("kredits-web/app",["exports","ember","kredits-web/resolver","ember-load-initializers","kredits-web/config/environment"],function(e,t,n,o,s){var r=void 0;t.default.MODEL_FACTORY_INJECTIONS=!0,r=t.default.Application.extend({modulePrefix:s.default.modulePrefix,podModulePrefix:s.default.podModulePrefix,Resolver:n.default}),(0,o.default)(r,s.default.modulePrefix),e.default=r}),define("kredits-web/components/add-contributor/component",["exports","ember"],function(e,t){e.default=t.default.Component.extend({id:null,realName:null,address:null,classId:function(){var e=this.get("id");return t.default.isEmpty(e)?null:"valid"}.property("id"),classRealName:function(){var e=this.get("realName");return t.default.isEmpty(e)?null:"valid"}.property("realName"),classAddress:function(){var e=this.get("address");return t.default.isEmpty(e)?null:"valid"}.property("address"),actions:{save:function(){console.log("id",this.get("id")),console.log("realName",this.get("realName")),console.log("address",this.get("address"))}}})}),define("kredits-web/components/add-contributor/template",["exports"],function(e){e.default=Ember.HTMLBars.template({id:"cnYN+xuu",block:'{"statements":[["open-element","form",[]],["modifier",["action"],[["get",[null]],"save"],[["on"],["submit"]]],["flush-element"],["text","\\n "],["open-element","p",[]],["flush-element"],["text","\\n "],["append",["helper",["input"],null,[["name","type","placeholder","value","class"],["id","text","GitHub UID (123)",["get",["id"]],["get",["classId"]]]]],false],["text","\\n "],["close-element"],["text","\\n "],["open-element","p",[]],["flush-element"],["text","\\n "],["append",["helper",["input"],null,[["name","type","placeholder","value","class"],["realname","text","Carl Sagan",["get",["realName"]],["get",["classRealName"]]]]],false],["text","\\n "],["close-element"],["text","\\n "],["open-element","p",[]],["flush-element"],["text","\\n "],["append",["helper",["input"],null,[["name","type","placeholder","value","class"],["address","text","0xF18E631Ea191aE4ebE70046Fcb01a436554421BA4",["get",["address"]],["get",["classAddress"]]]]],false],["text","\\n "],["close-element"],["text","\\n "],["open-element","p",[]],["static-attr","class","actions"],["flush-element"],["text","\\n "],["open-element","input",[]],["static-attr","type","submit"],["static-attr","value","Save"],["flush-element"],["close-element"],["text","\\n "],["close-element"],["text","\\n"],["close-element"],["text","\\n"]],"locals":[],"named":[],"yields":[],"blocks":[],"hasPartials":false}',meta:{moduleName:"kredits-web/components/add-contributor/template.hbs"}})}),define("kredits-web/components/contributor-list/component",["exports","ember"],function(e,t){e.default=t.default.Component.extend({tagName:"table",classNames:"contributor-list"})}),define("kredits-web/components/contributor-list/template",["exports"],function(e){e.default=Ember.HTMLBars.template({id:"3EKzDpyc",block:'{"statements":[["open-element","tbody",[]],["flush-element"],["text","\\n"],["block",["each"],[["get",["contributors"]]],null,0],["close-element"],["text","\\n"]],"locals":[],"named":[],"yields":[],"blocks":[{"statements":[["text"," "],["open-element","tr",[]],["flush-element"],["text","\\n "],["open-element","td",[]],["static-attr","class","person"],["flush-element"],["text","\\n "],["open-element","img",[]],["static-attr","class","avatar"],["dynamic-attr","src",["unknown",["contributor","avatarURL"]],null],["flush-element"],["close-element"],["text","\\n "],["append",["unknown",["contributor","github_username"]],false],["text","\\n "],["close-element"],["text","\\n "],["open-element","td",[]],["static-attr","class","kredits"],["flush-element"],["text","\\n "],["open-element","span",[]],["static-attr","class","amount"],["flush-element"],["append",["unknown",["contributor","kredits"]],false],["close-element"],["text","\\n "],["open-element","span",[]],["static-attr","class","symbol"],["flush-element"],["text","₭S"],["close-element"],["text","\\n "],["close-element"],["text","\\n "],["close-element"],["text","\\n"]],"locals":["contributor"]}],"hasPartials":false}',meta:{moduleName:"kredits-web/components/contributor-list/template.hbs"}})}),define("kredits-web/components/loading-spinner/component",["exports","ember"],function(e,t){e.default=t.default.Component.extend({classNames:["loading-spinner"]})}),define("kredits-web/components/loading-spinner/template",["exports"],function(e){e.default=Ember.HTMLBars.template({id:"+vFITFyc",block:'{"statements":[["open-element","p",[]],["flush-element"],["text","\\n "],["open-element","svg",[]],["static-attr","xmlns","http://www.w3.org/2000/svg","http://www.w3.org/2000/xmlns/"],["static-attr","xmlns:xlink","http://www.w3.org/1999/xlink","http://www.w3.org/2000/xmlns/"],["static-attr","version","1.1"],["static-attr","x","0px"],["static-attr","y","0px"],["static-attr","viewBox","0 0 132 100"],["static-attr","enablLine truncated
@@ -0,0 +1 @@
{"version":3,"sources":["vendor/ember-cli/app-prefix.js","kredits-web/app.js","kredits-web/components/add-contributor/component.js","kredits-web/components/add-contributor/template.js","kredits-web/components/add-proposal/component.js","kredits-web/components/add-proposal/template.js","kredits-web/components/contributor-list/component.js","kredits-web/components/contributor-list/template.js","kredits-web/components/loading-spinner/component.js","kredits-web/components/loading-spinner/template.js","kredits-web/components/proposal-list/component.js","kredits-web/components/proposal-list/template.js","kredits-web/controllers/application.js","kredits-web/controllers/index.js","kredits-web/controllers/proposals/new.js","kredits-web/helpers/and.js","kredits-web/helpers/app-version.js","kredits-web/helpers/await.js","kredits-web/helpers/eq.js","kredits-web/helpers/gt.js","kredits-web/helpers/gte.js","kredits-web/helpers/is-array.js","kredits-web/helpers/is-equal.js","kredits-web/helpers/is-fulfilled.js","kredits-web/helpers/is-pending.js","kredits-web/helpers/is-rejected.js","kredits-web/helpers/lt.js","kredits-web/helpers/lte.js","kredits-web/helpers/not-eq.js","kredits-web/helpers/not.js","kredits-web/helpers/or.js","kredits-web/helpers/promise-all.js","kredits-web/helpers/promise-hash.js","kredits-web/helpers/promise-rejected-reason.js","kredits-web/helpers/xor.js","kredits-web/initializers/app-version.js","kredits-web/initializers/container-debug-adapter.js","kredits-web/initializers/export-application-global.js","kredits-web/models/contributor.js","kredits-web/models/proposal.js","kredits-web/resolver.js","kredits-web/router.js","kredits-web/routes/application.js","kredits-web/routes/spinner.js","kredits-web/services/ajax.js","kredits-web/services/kredits.js","kredits-web/templates/application.js","kredits-web/templates/index.js","kredits-web/templates/loading.js","kredits-web/templates/proposals/new.js","kredits-web/templates/spinner.js","kredits-web/utils/cps/bignumber.js","vendor/ember-cli/app-config.js","vendor/ember-cli/app-boot.js"],"names":["define","exports","_resolver","_emberLoadInitializers","_environment","Object","defineProperty","value","App","Ember","Application","extend","modulePrefix","default","podModulePrefix","Resolver","Component","kredits","inject","service","attributes","account","name","kind","url","github_username","github_uid","wiki_username","isCore","didInsertElement","this","_super","apply","arguments","reset","isValidAccount","computed","notEmpty","isValidName","isValidURL","isValidGithubUID","isValidGithubUsername","isValidWikiUsername","isValid","and","setProperties","actions","submit","_this","keys","contributor","getProperties","saved","save","set","then","window","scroll","alert","HTMLBars","template","id","block","meta","moduleName","contributorId","amount","description","contributors","isValidContributor","isValidAmount","parseInt","isValidDescription","isValidUrl","proposal","tagName","classNames","selectedContributor","toggleContributorInfo","get","setEach","confirm","proposalId","contractInteractionEnabled","confirmProposal","Controller","alias","contributorsWithKredits","filter","contributorsSorting","contributorsSorted","sort","proposals","proposalsOpen","filterBy","proposalsClosed","proposalsSorting","proposalsClosedSorted","proposalsOpenSorted","vote","transaction","hash","addContributor","pushObject","minedContributors","findBy","contributorIpfsHash","addProposal","transitionToRoute","_and","enumerable","_regexp","appVersion","version","APP","_","length","undefined","hideSha","match","versionRegExp","hideVersion","shaRegExp","Helper","helper","_await","_equal","equal","_gt","gt","_gte","gte","_isArray","isArray","_isEqual","isEqual","_isFulfilled","isFulfilled","_isPending","isPending","_isRejected","isRejected","_lt","lt","_lte","lte","_notEqual","notEq","_not","not","_or","or","_promiseAll","promiseAll","_promiseHash","promiseHash","_promiseRejectedReason","_xor","xor","_initializerFactory","initialize","_containerDebugAdapter","app","register","application","exportApplicationGlobal","theGlobal","global","self","globalName","String","classify","reopen","willDestroy","_bignumber","balance","ipfsHash","ipfsData","isCurrentUser","avatarURL","creatorAccount","votesCount","votesNeeded","executed","isExecuted","details","_emberResolver","Router","location","locationType","rootURL","map","route","Route","beforeModel","transition","setup","retry","catch","error","console","log","afterModel","loadContributorsAndProposals","addContractEventHandlers","_ajax","_npmEthers","_npmKreditsContracts","_contributor","_proposal","Service","currentUserAccounts","currentUser","currentUserIsContributor","currentUserIsCore","hasAccounts","accountNeedsUnlock","isEmpty","getEthProvider","RSVP","Promise","resolve","ethProvider","networkId","web3","debug","network","providers","Web3Provider","currentProvider","chainId","listAccounts","accounts","contractMetadata","JsonRpcProvider","web3ProLine truncated
@@ -0,0 +1 @@
@charset "UTF-8";body,button,h1,h2,h3,h4,h5,input{font-family:"Open Sans",sans-serif;font-weight:300}#topbar h1,button,input[type=submit]{text-transform:uppercase;display:inline-block}*{margin:0;padding:0;box-sizing:border-box;font-size:14px}:active,:focus,:hover{outline:0;-webkit-tap-highlight-color:rgba(255,255,255,0);-webkit-tap-highlight-color:transparent}main{padding:1rem}main#index{width:100%;display:grid;grid-row-gap:2rem;grid-template-areas:"stats" "contributions"}main section{margin-bottom:5rem}main section:first-of-type{margin-top:2rem}main section header{padding-bottom:3rem;text-align:center}@media (max-width:600px){main section{margin-bottom:5rem}main section header{padding-bottom:2rem}}body{background-image:linear-gradient(to bottom,rgba(22,21,40,.4),rgba(0,0,0,.75)),url(/img/bg-947d3bf6bb15a1a3b07afcba4c307690.jpg);background-repeat:none;background-attachment:fixed;color:#fff}@media screen and (min-width:900px){body{background-size:cover}}button,h1,h2,h3,h4,h5,input{font-size:1rem}section h2{font-size:1.4rem;color:#68d7fb}section#people .content p.stats{margin-bottom:1rem;font-size:1rem;color:#fff;text-align:center}section#people .content p.stats span.number{font-weight:600}button,input[type=submit],ul.contribution-list li .amount,ul.contribution-list li .recipient,ul.proposal-list li .amount,ul.proposal-list li .recipient,ul.proposal-list li .symbol{font-weight:500}section#contributions-by-type .chart{width:50%;margin-left:auto;margin-right:auto}section#proposals-closed .actions,section#proposals-open .actions{padding-top:3rem;font-size:1rem;color:#68d7fb;text-align:center}@media (max-width:600px){section#contributions-by-type .chart{width:75%}section#proposals-closed .actions,section#proposals-open .actions{padding-top:2rem}}section#proposals-closed .actions a,section#proposals-open .actions a{color:#68d7fb}@media (min-width:550px){main#index{grid-column-gap:4rem;grid-row-gap:2rem;grid-template-columns:2fr 4fr;grid-template-areas:"stats contributions"}section h2{font-size:2rem}}button,input[type=submit]{padding:.6rem 2rem;background-color:rgba(22,21,40,.6);border:1px solid #161528;border-radius:3px;color:#68d7fb;cursor:pointer;letter-spacing:.1em}button:hover,input[type=submit]:hover{background-color:rgba(22,21,40,.8)}button.small,input[type=submit].small{font-size:.8rem;padding:.2rem .8rem}.loading-spinner,table.contributor-list tr td.kredits .amount{font-size:1.4rem}button.danger,input[type=submit].danger{color:#fb6868;background-color:rgba(40,21,21,.6)}button.danger:hover,input[type=submit].danger:hover{background-color:rgba(40,21,21,.8)}#topbar{height:3rem;padding:0 1rem;line-height:3rem;background-color:rgba(0,0,0,.3)}#topbar section#user-account{display:inline-block;float:right}@keyframes pulse{from{opacity:.1}to{opacity:.6}}.loading-spinner{margin-top:12rem;text-align:center;color:#68d7fb}@media (max-width:600px){.loading-spinner{margin-top:6rem}main section#contributions-confirmed,main section#contributions-unconfirmed{margin-top:0}}.loading-spinner svg{width:200px;height:200px;margin-bottom:2rem}.loading-spinner svg #path-comet{fill:#68d7fb;opacity:.1;animation-name:pulse;animation-iteration-count:infinite;animation-timing-function:ease-in-out;animation-direction:alternate;animation-duration:1s}table.contributor-list{width:100%;border-collapse:collapse;margin-bottom:1.5rem}table.contributor-list tr{border-bottom:1px solid rgba(255,255,255,.2);background-color:rgba(255,255,255,.1)}table.contributor-list tr:first-of-type{border-top:1px solid rgba(255,255,255,.2)}table.contributor-list tr.current-user{background-color:rgba(255,255,255,.2)}table.contributor-list tr.metadata{height:0;transition:all .2s ease-out}table.contributor-list tr.metadata td{padding:0 1.2rem}table.contributor-list tr.metadata a{color:#68d7fb}table.contributor-list tr.metadata a:active,table.contributor-list tr.metadata a:hover{color:#fff}table.contributor-list tr.metadata ul{list-style:none;display:block;overflow:hidden;height:0;transition:all .2s ease-out}table.contributor-list tr.metadata ul li{display:inline}table.contributor-list tr.metadata ul li+li{margin-left:1rem}table.contributor-list tr.metadata.visible,table.contributor-list tr.metadata.visible ul{height:auto}table.contributor-list tr td{padding:0 1.2rem;line-height:4.2rem}table.contributor-list tr td.person{text-align:left;font-size:1.4rem}table.contributor-list tr td.person img.avatar{margin-right:.2rem}table.contributor-list tr td.kredits{text-align:right}table.contributor-list tr td.kredits .symbol{font-size:1rem;padding-left:.2rem}table.contributor-list tr td pre{line-height:1rem;padding-bottom:1rem}section#add-contributor form p,section#add-proposal form p{margin-bottom:1rem}section#add-contributor form p.actions,section#add-proposal form p.actions{padding-top:1rem;text-align:center}section#add-contributor form p.actions a,section#add-proposal form p.actions a{color:#68d7fb;margin-left:1rem}section#add-contributor form input[type=text],section#adLine truncated
@@ -0,0 +1,2 @@
"use strict";define("kredits-web/app",["exports","ember","kredits-web/resolver","ember-load-initializers","kredits-web/config/environment"],function(e,t,n,r,l){var s=void 0;t.default.MODEL_FACTORY_INJECTIONS=!0,s=t.default.Application.extend({modulePrefix:l.default.modulePrefix,podModulePrefix:l.default.podModulePrefix,Resolver:n.default}),(0,r.default)(s,l.default.modulePrefix),e.default=s}),define("kredits-web/components/add-contributor/component",["exports","ember"],function(e,t){e.default=t.default.Component.extend({id:null,realName:null,address:null,ipfsHash:null,isCore:!1,inProgress:!1,isValidId:function(){return t.default.isPresent(this.get("id"))}.property("id"),isValidRealName:function(){return t.default.isPresent(this.get("realName"))}.property("realName"),isValidAddress:function(){return this.get("kredits.web3Instance").isAddress(this.get("address"))}.property("address"),isValid:function(){return this.get("isValidId")&&this.get("isValidRealName")&&this.get("isValidAddress")}.property("isValidAddress","isValidId","isValidRealName"),reset:function(){this.setProperties({id:null,realName:null,address:null,ipfsHash:null,isCore:!0,inProgress:!1})},actions:{save:function(){var e=this;return this.get("contractInteractionEnabled")?void(this.get("isValid")?(this.set("inProgress",!0),this.get("kredits").addContributor(this.get("address"),this.get("realName"),this.get("isCore"),this.get("id")).then(function(t){e.reset(),e.get("contributors").pushObject(t),window.scroll(0,0)})):alert("Invalid data. Please review and try again.")):void alert("Only core team members can add new contributors. Please ask someone to set you up.")}}})}),define("kredits-web/components/add-contributor/template",["exports"],function(e){e.default=Ember.HTMLBars.template({id:"/x85W8NK",block:'{"statements":[["open-element","form",[]],["modifier",["action"],[["get",[null]],"save"],[["on"],["submit"]]],["flush-element"],["text","\\n "],["open-element","p",[]],["flush-element"],["text","\\n "],["append",["helper",["input"],null,[["type","name","id","checked"],["checkbox","is-core","is-core",["get",["isCore"]]]]],false],["text","\\n "],["open-element","label",[]],["static-attr","for","is-core"],["static-attr","class","checkbox"],["flush-element"],["text","\\n Core team member (can add contributors)\\n "],["close-element"],["text","\\n "],["close-element"],["text","\\n "],["open-element","p",[]],["flush-element"],["text","\\n "],["append",["helper",["input"],null,[["name","type","placeholder","value","class"],["id","text","GitHub UID (123)",["get",["id"]],["helper",["if"],[["get",["isValidId"]],"valid",""],null]]]],false],["text","\\n "],["close-element"],["text","\\n "],["open-element","p",[]],["flush-element"],["text","\\n "],["append",["helper",["input"],null,[["name","type","placeholder","value","class"],["realname","text","GitHub username",["get",["realName"]],["helper",["if"],[["get",["isValidRealName"]],"valid",""],null]]]],false],["text","\\n "],["close-element"],["text","\\n "],["open-element","p",[]],["flush-element"],["text","\\n "],["append",["helper",["input"],null,[["name","type","placeholder","value","class"],["address","text","0xF18E631Ea191aE4ebE70046Fcb01a436554421BA4",["get",["address"]],["helper",["if"],[["get",["isValidAddress"]],"valid",""],null]]]],false],["text","\\n "],["close-element"],["text","\\n "],["open-element","p",[]],["static-attr","class","actions"],["flush-element"],["text","\\n "],["append",["helper",["input"],null,[["type","value","disabled"],["submit",["helper",["if"],[["get",["inProgress"]],"Processing","Save"],null],["get",["inProgress"]]]]],false],["text","\\n "],["close-element"],["text","\\n"],["close-element"],["text","\\n"]],"locals":[],"named":[],"yields":[],"blocks":[],"hasPartials":false}',meta:{moduleName:"kredits-web/components/add-contributor/template.hbs"}})}),define("kredits-web/components/add-proposal/component",["exports","ember"],function(e,t){var n=t.default.Component,r=t.default.inject.service,l=t.default.computed;e.default=n.extend({kredits:r(),proposal:null,inProgress:!1,isValidRecipient:l("proposal.recipientAddress",function(){return this.get("kredits.web3Instance").isAddress(this.get("proposal.recipientAddress"))}),isValidAmount:l("proposal.amount",function(){return!0}),isValidUrl:l("proposal.url",function(){return!0}),isValidIpfsHash:l("proposal.ipfsHash",function(){return!0}),isValid:l.and("isValidRecipient","isValidAmount","isValidUrl","isValidIpfsHash"),actions:{save:function(){var e=this;this.get("isValid")?(this.set("inProgress",!0),this.get("kredits").addProposal(this.get("proposal")).then(function(){e.attrs.onSave()}).catch(function(e){t.default.Logger.error("Error creating the proposal",e),alert("Something went wrong.")}).finally(function(){e.set("inProgress",!1)})):alert("Invalid data. Please review and try again.")}}})}),define("kredits-web/components/add-proposal/template",["exports"],function(e){e.default=Ember.HTMLBars.template({Line truncated
var a=l.default.create({address:e,github_username:n,github_uid:s,kredits:0,isCore:r,isCurrentUser:this.get("currentUserAccounts").includes(e)});return new t.default.RSVP.Promise(function(l,i){o.get("ipfs").storeFile(a.serialize()).then(function(d){a.set("ipfsHash",d),t.default.Logger.debug("ADD",e,n,d,r,s),o.get("kreditsContract").addContributor(e,n,d,r,s,function(e,n){return e?void i(e):(t.default.Logger.debug("[kredits] add contributor response",n),void l(a))})})})},addProposal:function(e){var n=this;return new t.default.RSVP.Promise(function(r,l){var s=e.getProperties("recipientAddress","amount","url","ipfsHash"),o=s.recipientAddress,a=s.amount,i=s.url,d=s.ipfsHash;n.get("kreditsContract").addProposal(o,a,i,d,function(e,n){return e?void l(e):(t.default.Logger.debug("[kredits] add proposal response",n),void r())})})},logKreditsContract:function(){t.default.Logger.debug("[kredits] kreditsContract",this.get("kreditsContract"))}.on("init")})}),define("kredits-web/services/qp",["exports","ember-parachute/services/qp"],function(e,t){Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("kredits-web/templates/application",["exports"],function(e){e.default=Ember.HTMLBars.template({id:"bs9LAwOM",block:'{"statements":[["open-element","main",[]],["flush-element"],["text","\\n "],["append",["unknown",["outlet"]],false],["text","\\n"],["close-element"],["text","\\n"]],"locals":[],"named":[],"yields":[],"blocks":[],"hasPartials":false}',meta:{moduleName:"kredits-web/templates/application.hbs"}})}),define("kredits-web/templates/index",["exports"],function(e){e.default=Ember.HTMLBars.template({id:"wvDNcFuV",block:'{"statements":[["open-element","section",[]],["static-attr","id","contributors"],["flush-element"],["text","\\n "],["open-element","header",[]],["flush-element"],["text","\\n "],["open-element","h2",[]],["flush-element"],["text","Kosmos Contributors"],["close-element"],["text","\\n "],["close-element"],["text","\\n\\n "],["open-element","div",[]],["static-attr","class","content"],["flush-element"],["text","\\n "],["append",["helper",["contributor-list"],null,[["contributors"],[["get",["contributorsSorted"]]]]],false],["text","\\n\\n "],["open-element","p",[]],["static-attr","class","stats"],["flush-element"],["text","\\n "],["open-element","span",[]],["static-attr","class","number"],["flush-element"],["append",["unknown",["model","totalSupply"]],false],["close-element"],["text"," kredits issued and distributed among\\n "],["open-element","span",[]],["static-attr","class","number"],["flush-element"],["append",["unknown",["contributorsWithKredits","length"]],false],["close-element"],["text"," contributors.\\n "],["close-element"],["text","\\n "],["close-element"],["text","\\n"],["close-element"],["text","\\n\\n"],["block",["if"],[["get",["proposalsOpen"]]],null,4],["text","\\n"],["open-element","section",[]],["static-attr","id","proposals-closed"],["flush-element"],["text","\\n "],["open-element","header",[]],["flush-element"],["text","\\n "],["open-element","h2",[]],["flush-element"],["text","Closed Proposals"],["close-element"],["text","\\n "],["close-element"],["text","\\n "],["open-element","div",[]],["static-attr","class","content"],["flush-element"],["text","\\n "],["append",["helper",["proposal-list"],null,[["proposals","confirmAction"],[["get",["proposalsClosedSorted"]],"confirmProposal"]]],false],["text","\\n\\n"],["block",["if"],[["get",["contractInteractionEnabled"]]],null,1],["text"," "],["close-element"],["text","\\n"],["close-element"],["text","\\n\\n"],["open-element","section",[]],["static-attr","id","add-contributor"],["flush-element"],["text","\\n "],["open-element","header",[]],["flush-element"],["text","\\n "],["open-element","h2",[]],["flush-element"],["text","Add Contributor"],["close-element"],["text","\\n "],["close-element"],["text","\\n\\n "],["open-element","div",[]],["static-attr","class","content"],["flush-element"],["text","\\n "],["append",["helper",["add-contributor"],null,[["kredits","contributors","contractInteractionEnabled"],[["get",["kredits"]],["get",["model","contributors"]],["get",["contractInteractionEnabled"]]]]],false],["text","\\n "],["close-element"],["text","\\n"],["close-element"],["text","\\n"]],"locals":[],"named":[],"yields":[],"blocks":[{"statements":[["text","Create new proposal"]],"locals":[]},{"statements":[["text"," "],["open-element","p",[]],["static-attr","class","actions"],["flush-element"],["text","\\n "],["block",["link-to"],["proposals.new"],null,0],["text","\\n "],["close-element"],["text","\\n"]],"locals":[]},{"statements":[["text","Create new proposal"]],"locals":[]},{"statements":[["text"," "],["open-element","p",[]],["static-attr","class","actions"],["flush-element"],["text","\\n "],["block",["link-to"],["proposals.new"],null,2],["text","\\n "],["close-element"],["text","\\n"]],"locals":[]},{"statements":[["text"," "],["oLine truncated
@@ -0,0 +1 @@
body,button,h1,h2,h3,h4,h5,input{font-family:"Open Sans",sans-serif;font-weight:300}*{margin:0;padding:0}:active,:focus,:hover{outline:0;-webkit-tap-highlight-color:rgba(255,255,255,0);-webkit-tap-highlight-color:transparent}html{box-sizing:border-box}*,::after,::before{box-sizing:inherit}section{max-width:41.66667em;margin-left:auto;margin-right:auto;margin-bottom:8rem}section::after{clear:both;content:"";display:block}section:first-of-type{margin-top:6rem}section header{float:left;display:block;margin-right:2.35765%;width:100%;padding-bottom:3rem;text-align:center}section header:last-child{margin-right:0}@media screen and (max-width:600px){section{margin-bottom:5rem}section:first-of-type{margin-top:2rem}section header{float:left;display:block;margin-right:2.35765%;width:82.94039%;margin-left:8.5298%;padding-bottom:2rem}section header:last-child{margin-right:0}}section header div.content{float:left;display:block;margin-right:2.35765%;width:100%}section header div.content:last-child{margin-right:0}body{background-image:url(/img/bg-947d3bf6bb15a1a3b07afcba4c307690.jpg);background-repeat:none;background-attachment:fixed;font-size:16px;color:#fff}@media screen and (min-width:900px){body{background-size:cover}}button,h1,h2,h3,h4,h5,input{font-size:1rem}section h2{font-size:2.8rem;color:#add8e6}@media screen and (max-width:600px){section h2{font-size:2rem}}section#contributors .content p.stats{padding-top:3rem;font-size:1rem;color:#add8e6;text-align:center}.loading-spinner,table.contributor-list tr td.kredits .amount{font-size:1.4rem}section#contributors .content p.stats span.number{font-weight:600}button,input[type=submit],ul.proposal-list li .amount,ul.proposal-list li .recipient{font-weight:500}button,input[type=submit]{display:inline-block;border:1px solid #161528;background-color:rgba(22,21,40,.6);color:#add8e6;border-radius:3px;text-transform:uppercase;cursor:pointer;letter-spacing:.1em}button:hover,input[type=submit]:hover{background-color:rgba(22,21,40,.8)}@keyframes pulse{from{opacity:.1}to{opacity:.6}}.loading-spinner{margin-top:12rem;text-align:center;color:#add8e6}@media screen and (max-width:600px){section#contributors .content p.stats{padding-top:2rem}.loading-spinner{margin-top:6rem}}.loading-spinner svg{width:200px;height:200px;margin-bottom:2rem}.loading-spinner svg #path-comet{fill:#add8e6;opacity:.1;animation-name:pulse;animation-iteration-count:infinite;animation-timing-function:ease-in-out;animation-direction:alternate;animation-duration:1s}table.contributor-list{width:100%;border-collapse:collapse}table.contributor-list tr{border-bottom:1px solid rgba(255,255,255,.2)}table.contributor-list tr:first-of-type{border-top:1px solid rgba(255,255,255,.2)}table.contributor-list tr td{padding:0 1.2rem;line-height:4.2rem;background-color:rgba(255,255,255,.1)}table.contributor-list tr td.person{text-align:left;font-size:1.4rem}table.contributor-list tr td.person img.avatar{width:2rem;height:2rem;vertical-align:middle;margin-right:.2rem;border-radius:1rem}table.contributor-list tr td.kredits{text-align:right}table.contributor-list tr td.kredits .symbol{font-size:1rem;padding-left:.2rem}table.contributor-list tr.current-user td{background-color:rgba(255,255,255,.2)}section#add-contributor form p{margin-bottom:1rem}section#add-contributor form p.actions{padding-top:1rem;text-align:center}section#add-contributor form input[type=text]{width:100%;padding:1rem;border:none;border-bottom:1px solid rgba(255,255,255,.2);background-color:rgba(22,21,40,.3);color:#fff;font-size:1.2rem}section#add-contributor form input[type=text].valid,section#add-contributor form input[type=text]:focus{background-color:rgba(22,21,40,.6)}section#add-contributor form input[type=submit]{padding:.6rem 2rem}section#add-contributor form input[type=submit]:disabled{background-color:transparent}ul.proposal-list{clear:both;width:100%;list-style:none}ul.proposal-list li{padding:0 1.2rem;line-height:4.2rem;background-color:rgba(255,255,255,.1);font-size:1.4rem;border-bottom:1px solid rgba(255,255,255,.2)}ul.proposal-list li:first-of-type{border-top:1px solid rgba(255,255,255,.2)}ul.proposal-list li .id{color:#add8e6;padding-right:.2rem}ul.proposal-list li .symbol{font-size:1rem;font-weight:500;padding-left:.2rem}ul.proposal-list li .votes{font-size:1rem;color:#add8e6;padding-left:1rem}ul.proposal-list li button{float:right;margin-top:1.1rem;height:2rem;line-height:2rem;padding:0 .6rem}
@@ -0,0 +1,2 @@
"use strict";define("kredits-web/app",["exports","ember","kredits-web/resolver","ember-load-initializers","kredits-web/config/environment"],function(e,t,n,s,o){var r=void 0;t.default.MODEL_FACTORY_INJECTIONS=!0,r=t.default.Application.extend({modulePrefix:o.default.modulePrefix,podModulePrefix:o.default.podModulePrefix,Resolver:n.default}),(0,s.default)(r,o.default.modulePrefix),e.default=r}),define("kredits-web/components/add-contributor/component",["exports","ember"],function(e,t){e.default=t.default.Component.extend({id:null,realName:null,address:null,ipfsHash:null,isCore:!1,inProgress:!1,isValidId:function(){return t.default.isPresent(this.get("id"))}.property("id"),isValidRealName:function(){return t.default.isPresent(this.get("realName"))}.property("realName"),isValidAddress:function(){return this.get("kredits.web3Instance").isAddress(this.get("address"))}.property("address"),isValid:function(){return this.get("isValidId")&&this.get("isValidRealName")&&this.get("isValidAddress")}.property("isValidAddress","isValidId","isValidRealName"),reset:function(){this.setProperties({id:null,realName:null,address:null,ipfsHash:null,isCore:!0,inProgress:!1})},actions:{save:function(){var e=this;return this.get("contractInteractionEnabled")?void(this.get("isValid")?(this.set("inProgress",!0),this.get("kredits").addContributor(this.get("address"),this.get("realName"),this.get("isCore"),this.get("id")).then(function(t){e.reset(),e.get("contributors").pushObject(t),window.scroll(0,0)})):alert("Invalid data. Please review and try again.")):void alert("Only core team members can add new contributors. Please ask someone to set you up.")}}})}),define("kredits-web/components/add-contributor/template",["exports"],function(e){e.default=Ember.HTMLBars.template({id:"/x85W8NK",block:'{"statements":[["open-element","form",[]],["modifier",["action"],[["get",[null]],"save"],[["on"],["submit"]]],["flush-element"],["text","\\n "],["open-element","p",[]],["flush-element"],["text","\\n "],["append",["helper",["input"],null,[["type","name","id","checked"],["checkbox","is-core","is-core",["get",["isCore"]]]]],false],["text","\\n "],["open-element","label",[]],["static-attr","for","is-core"],["static-attr","class","checkbox"],["flush-element"],["text","\\n Core team member (can add contributors)\\n "],["close-element"],["text","\\n "],["close-element"],["text","\\n "],["open-element","p",[]],["flush-element"],["text","\\n "],["append",["helper",["input"],null,[["name","type","placeholder","value","class"],["id","text","GitHub UID (123)",["get",["id"]],["helper",["if"],[["get",["isValidId"]],"valid",""],null]]]],false],["text","\\n "],["close-element"],["text","\\n "],["open-element","p",[]],["flush-element"],["text","\\n "],["append",["helper",["input"],null,[["name","type","placeholder","value","class"],["realname","text","GitHub username",["get",["realName"]],["helper",["if"],[["get",["isValidRealName"]],"valid",""],null]]]],false],["text","\\n "],["close-element"],["text","\\n "],["open-element","p",[]],["flush-element"],["text","\\n "],["append",["helper",["input"],null,[["name","type","placeholder","value","class"],["address","text","0xF18E631Ea191aE4ebE70046Fcb01a436554421BA4",["get",["address"]],["helper",["if"],[["get",["isValidAddress"]],"valid",""],null]]]],false],["text","\\n "],["close-element"],["text","\\n "],["open-element","p",[]],["static-attr","class","actions"],["flush-element"],["text","\\n "],["append",["helper",["input"],null,[["type","value","disabled"],["submit",["helper",["if"],[["get",["inProgress"]],"Processing","Save"],null],["get",["inProgress"]]]]],false],["text","\\n "],["close-element"],["text","\\n"],["close-element"],["text","\\n"]],"locals":[],"named":[],"yields":[],"blocks":[],"hasPartials":false}',meta:{moduleName:"kredits-web/components/add-contributor/template.hbs"}})}),define("kredits-web/components/add-proposal/component",["exports","ember"],function(e,t){var n=t.default.Component,s=t.default.inject.service,o=t.default.computed;e.default=n.extend({kredits:s(),proposal:null,inProgress:!1,isValidRecipient:o("proposal.recipientAddress",function(){return this.get("kredits.web3Instance").isAddress(this.get("proposal.recipientAddress"))}),isValidAmount:o("proposal.amount",function(){return!0}),isValidUrl:o("proposal.url",function(){return!0}),isValidIpfsHash:o("proposal.ipfsHash",function(){return!0}),isValid:o.and("isValidRecipient","isValidAmount","isValidUrl","isValidIpfsHash"),actions:{save:function(){var e=this;this.get("isValid")?(this.set("inProgress",!0),this.get("kredits").addProposal(this.get("proposal")).then(function(){e.attrs.onSave()}).catch(function(e){t.default.Logger.error("Error creating the proposal",e),alert("Something went wrong.")}).finally(function(){e.set("inProgress",!1)})):alert("Invalid data. Please review and try again.")}}})}),define("kredits-web/components/add-proposal/template",["exports"],function(e){e.default=Ember.HTMLBars.template({Line truncated
meta:{moduleName:"kredits-web/templates/index.hbs"}})}),define("kredits-web/templates/loading",["exports"],function(e){e.default=Ember.HTMLBars.template({id:"elCfJGFx",block:'{"statements":[["append",["unknown",["loading-spinner"]],false],["text","\\n"]],"locals":[],"named":[],"yields":[],"blocks":[],"hasPartials":false}',meta:{moduleName:"kredits-web/templates/loading.hbs"}})}),define("kredits-web/templates/proposals/new",["exports"],function(e){e.default=Ember.HTMLBars.template({id:"fCAPepGF",block:'{"statements":[["open-element","section",[]],["static-attr","id","add-proposal"],["flush-element"],["text","\\n "],["open-element","header",[]],["flush-element"],["text","\\n "],["open-element","h2",[]],["flush-element"],["text","Add Proposal"],["close-element"],["text","\\n "],["close-element"],["text","\\n\\n "],["open-element","div",[]],["static-attr","class","content"],["flush-element"],["text","\\n "],["append",["helper",["add-proposal"],null,[["proposal","onSave"],[["get",["model"]],["helper",["action"],[["get",[null]],"onSave"],null]]]],false],["text","\\n "],["close-element"],["text","\\n"],["close-element"],["text","\\n\\n"]],"locals":[],"named":[],"yields":[],"blocks":[],"hasPartials":false}',meta:{moduleName:"kredits-web/templates/proposals/new.hbs"}})}),define("kredits-web/templates/spinner",["exports"],function(e){e.default=Ember.HTMLBars.template({id:"OxhVgkbb",block:'{"statements":[["append",["unknown",["loading-spinner"]],false],["text","\\n"]],"locals":[],"named":[],"yields":[],"blocks":[],"hasPartials":false}',meta:{moduleName:"kredits-web/templates/spinner.hbs"}})}),define("kredits-web/config/environment",["ember"],function(e){var t="kredits-web";try{var n=t+"/config/environment",s=document.querySelector('meta[name="'+n+'"]').getAttribute("content"),o=JSON.parse(unescape(s)),r={default:o};return Object.defineProperty(r,"__esModule",{value:!0}),r}catch(e){throw new Error('Could not read config from meta tag with name "'+n+'".')}}),runningTests||require("kredits-web/app").default.create({name:"kredits-web",version:"0.1.0+0b7afc0d"});
@@ -0,0 +1,42 @@
"use strict"
define("kredits-web/app",["exports","kredits-web/resolver","ember-load-initializers","kredits-web/config/environment"],function(e,t,n,r){Object.defineProperty(e,"__esModule",{value:!0})
var o=Ember.Application.extend({modulePrefix:r.default.modulePrefix,podModulePrefix:r.default.podModulePrefix,Resolver:t.default});(0,n.default)(o,r.default.modulePrefix),e.default=o}),define("kredits-web/components/add-contributor/component",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Component.extend({kredits:Ember.inject.service(),attributes:{account:null,name:null,kind:"person",url:null,github_username:null,github_uid:null,wiki_username:null,isCore:!1},didInsertElement:function(){this._super.apply(this,arguments),this.reset()},isValidAccount:Ember.computed.notEmpty("account"),isValidName:Ember.computed.notEmpty("name"),isValidURL:Ember.computed.notEmpty("url"),isValidGithubUID:Ember.computed.notEmpty("github_uid"),isValidGithubUsername:Ember.computed.notEmpty("github_username"),isValidWikiUsername:Ember.computed.notEmpty("wiki_username"),isValid:Ember.computed.and("isValidAccount","isValidName","isValidGithubUID"),reset:function(){this.setProperties(this.attributes)},actions:{submit:function(){var e=this
if(this.isValid){var t=Object.keys(this.attributes),n=this.getProperties(t),r=this.save(n)
this.set("inProgress",r),r.then(function(){e.reset(),window.scroll(0,0),window.alert("Contributor added.")})}else alert("Invalid data. Please review and try again.")}}})}),define("kredits-web/components/add-contributor/template",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"CSegBQfj",block:'{"symbols":[],"statements":[[6,"form"],[3,"action",[[21,0,[]],"submit"],[["on"],["submit"]]],[8],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[1,[26,"input",null,[["name","type","id","checked"],["is-core","checkbox","is-core",[22,["isCore"]]]]],false],[0,"\\n "],[6,"label"],[10,"for","is-core"],[10,"class","checkbox"],[8],[0,"\\n Core team member (can add contributors)\\n "],[9],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[1,[26,"input",null,[["name","type","placeholder","value","class"],["account","text","0xF18E631Ea191aE4ebE70046Fcb01a436554421BA4",[22,["account"]],[26,"if",[[22,["isValidAccount"]],"valid",""],null]]]],false],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[6,"select"],[10,"required",""],[11,"onchange",[26,"action",[[21,0,[]],[26,"mut",[[22,["kind"]]],null]],[["value"],["target.value"]]],null],[8],[0,"\\n "],[6,"option"],[10,"value","person"],[11,"selected",[26,"eq",[[22,["kind"]],"person"],null],null],[8],[0,"Person"],[9],[0,"\\n "],[6,"option"],[10,"value","organization"],[11,"selected",[26,"eq",[[22,["kind"]],"organization"],null],null],[8],[0,"Organization"],[9],[0,"\\n "],[9],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[1,[26,"input",null,[["name","type","placeholder","value","class"],["name","text","Name",[22,["name"]],[26,"if",[[22,["isValidName"]],"valid",""],null]]]],false],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[1,[26,"input",null,[["name","type","placeholder","value","class"],["url","text","URL",[22,["url"]],[26,"if",[[22,["isValidURL"]],"valid",""],null]]]],false],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[1,[26,"input",null,[["name","type","placeholder","value","class"],["github_uid","text","GitHub UID (123)",[22,["github_uid"]],[26,"if",[[22,["isValidGithubUID"]],"valid",""],null]]]],false],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[1,[26,"input",null,[["name","type","placeholder","value","class"],["github_username","text","GitHub username",[22,["github_username"]],[26,"if",[[22,["isValidGithubUsername"]],"valid",""],null]]]],false],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[1,[26,"input",null,[["name","type","placeholder","value","class"],["wiki_username","text","Wiki Username",[22,["wiki_username"]],[26,"if",[[22,["isValidWikiUsername"]],"valid",""],null]]]],false],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[10,"class","actions"],[8],[0,"\\n "],[1,[26,"input",null,[["type","disabled","value"],["submit",[26,"is-pending",[[22,["inProgress"]]],null],[26,"if",[[26,"is-pending",[[22,["inProgress"]]],null],"Processing","Save"],null]]]],false],[0,"\\n "],[9],[0,"\\n"],[9],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"kredits-web/components/add-contributor/template.hbs"}})}),define("kredits-web/components/add-proposal/component",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Component.extend({attributes:{contributorId:null,kind:"community",amount:null,description:null,url:null},didInsertElement:function(){this._super.apply(this,arguments),this.reset()},contributors:[],isValidContributor:Ember.computed.notEmpty("contributorId"),isValidAmount:Ember.computed("amount",function(){return parseInt(this.amount,10)>0}),isValidDescription:Ember.computed.notEmpty("description"),isValidUrl:Ember.computed.notEmpty("url"),isValid:Ember.computed.and("isValidContributor","isValidAmount","isValidDescription"),reset:function(){this.setProperties(this.attributes)},actions:{submit:function(){var e=this
if(this.isValid){var t=Object.keys(this.attributes),n=this.getProperties(t),r=this.save(n)
this.set("inProgress",r),r.then(function(){e.reset(),window.scroll(0,0),window.alert("Proposal added.")})}else alert("Invalid data. Please review and try again.")}}})}),define("kredits-web/components/add-proposal/template",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"cM+dvRZ+",block:'{"symbols":["contributor"],"statements":[[6,"form"],[3,"action",[[21,0,[]],"submit"],[["on"],["submit"]]],[8],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[6,"select"],[10,"required",""],[11,"onchange",[26,"action",[[21,0,[]],[26,"mut",[[22,["contributorId"]]],null]],[["value"],["target.value"]]],null],[8],[0,"\\n "],[6,"option"],[10,"value",""],[10,"selected",""],[10,"disabled",""],[10,"hidden",""],[8],[0,"Contributor"],[9],[0,"\\n"],[4,"each",[[22,["contributors"]]],null,{"statements":[[0," "],[6,"option"],[11,"value",[21,1,["id"]],null],[11,"selected",[26,"eq",[[22,["contributorId"]],[21,1,["id"]]],null],null],[8],[1,[21,1,["github_username"]],false],[9],[0,"\\n"]],"parameters":[1]},null],[0," "],[9],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[6,"select"],[10,"required",""],[11,"onchange",[26,"action",[[21,0,[]],[26,"mut",[[22,["kind"]]],null]],[["value"],["target.value"]]],null],[8],[0,"\\n "],[6,"option"],[10,"value","community"],[11,"selected",[26,"eq",[[22,["kind"]],"community"],null],null],[8],[0,"Community"],[9],[0,"\\n "],[6,"option"],[10,"value","design"],[11,"selected",[26,"eq",[[22,["kind"]],"design"],null],null],[8],[0,"Design"],[9],[0,"\\n "],[6,"option"],[10,"value","dev"],[11,"selected",[26,"eq",[[22,["kind"]],"dev"],null],null],[8],[0,"Development"],[9],[0,"\\n "],[6,"option"],[10,"value","docs"],[11,"selected",[26,"eq",[[22,["kind"]],"docs"],null],null],[8],[0,"Documentation"],[9],[0,"\\n "],[6,"option"],[10,"value","ops"],[11,"selected",[26,"eq",[[22,["kind"]],"ops"],null],null],[8],[0,"IT Operations"],[9],[0,"\\n "],[9],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[1,[26,"input",null,[["type","placeholder","value","class"],["text","100",[22,["amount"]],[26,"if",[[22,["isValidAmount"]],"valid",""],null]]]],false],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[1,[26,"input",null,[["type","placeholder","value","class"],["text","Description",[22,["description"]],[26,"if",[[22,["isValidDescription"]],"valid",""],null]]]],false],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[1,[26,"input",null,[["type","placeholder","value","class"],["text","URL (optional)",[22,["url"]],[26,"if",[[22,["isValidUrl"]],"valid",""],null]]]],false],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[10,"class","actions"],[8],[0,"\\n "],[1,[26,"input",null,[["type","disabled","value"],["submit",[26,"is-pending",[[22,["inProgress"]]],null],[26,"if",[[26,"is-pending",[[22,["inProgress"]]],null],"Processing","Save"],null]]]],false],[0,"\\n "],[4,"link-to",["index"],null,{"statements":[[0,"Back"]],"parameters":[]},null],[0,"\\n "],[9],[0,"\\n"],[9],[0,"\\n\\n"]],"hasEval":false}',meta:{moduleName:"kredits-web/components/add-proposal/template.hbs"}})}),define("kredits-web/components/contributor-list/component",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Component.extend({tagName:"table",classNames:"contributor-list",selectedContributor:null,actions:{toggleContributorInfo:function(e){e.get("showMetadata")?e.set("showMetadata",!1):(this.contributors.setEach("showMetadata",!1),e.set("showMetadata",!0))}}})}),define("kredits-web/components/contributor-list/template",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"1c6etkaE",block:'{"symbols":["contributor"],"statements":[[6,"tbody"],[8],[0,"\\n"],[4,"each",[[22,["contributors"]]],null,{"statements":[[0," "],[6,"tr"],[11,"class",[27,[[26,"if",[[21,1,["isCurrentUser"]],"current-user"],null]]]],[3,"action",[[21,0,[]],"toggleContributorInfo",[21,1,[]]]],[8],[0,"\\n "],[6,"td"],[10,"class","person"],[8],[0,"\\n "],[6,"img"],[10,"class","avatar"],[11,"src",[21,1,["avatarURL"]],null],[8],[9],[0,"\\n "],[1,[21,1,["name"]],false],[0,"\\n "],[9],[0,"\\n "],[6,"td"],[10,"class","kredits"],[8],[0,"\\n "],[6,"span"],[10,"class","amount"],[8],[1,[21,1,["balance"]],false],[9],[0,"\\n "],[6,"span"],[10,"class","symbol"],[8],[0,"₭S"],[9],[0,"\\n "],[9],[0,"\\n "],[9],[0,"\\n "],[6,"tr"],[11,"class",[27,["metadata ",[26,"if",[[21,1,["isCurrentUser"]],"current-user"],null]," ",[26,"if",[[21,1,["showMetadata"]],"visible"],null]]]],[8],[0,"\\n "],[6,"td"],[10,"colspan","2"],[8],[0,"\\n "],[6,"ul"],[8],[0,"\\n "],[6,"li"],[8],[6,"a"],[11,"href",[27,["https://testnet.etherscan.io/address/",[21,1,["account"]]]]],[8],[0,"Inspect Ethereum transactions"],[9],[9],[0,"\\n"],[4,"if",[[21,1,["ipfsHash"]]],null,{"statements":[[0," "],[6,"li"],[8],[6,"a"],[11,"href",[27,["https://ipfs.io/ipfs/",[21,1,[Line truncated
return this.kredits.addContributor(e).then(function(e){return t.contributors.pushObject(e),e})}}})}),define("kredits-web/controllers/proposals/new",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Controller.extend({kredits:Ember.inject.service(),contributors:Ember.computed.alias("kredits.contributors"),minedContributors:Ember.computed.filterBy("contributors","id"),actions:{save:function(e){var t=this,n=this.contributors.findBy("id",e.contributorId)
return e.contributorIpfsHash=n.get("ipfsHash"),this.kredits.addProposal(e).then(function(e){return t.transitionToRoute("index"),e})}}})}),define("kredits-web/helpers/and",["exports","ember-truth-helpers/helpers/and"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"and",{enumerable:!0,get:function(){return t.and}})}),define("kredits-web/helpers/app-version",["exports","kredits-web/config/environment","ember-cli-app-version/utils/regexp"],function(e,t,n){Object.defineProperty(e,"__esModule",{value:!0}),e.appVersion=o
var r=t.default.APP.version
function o(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}
return t.hideSha?r.match(n.versionRegExp)[0]:t.hideVersion?r.match(n.shaRegExp)[0]:r}e.default=Ember.Helper.helper(o)}),define("kredits-web/helpers/await",["exports","ember-promise-helpers/helpers/await"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("kredits-web/helpers/eq",["exports","ember-truth-helpers/helpers/equal"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"equal",{enumerable:!0,get:function(){return t.equal}})}),define("kredits-web/helpers/gt",["exports","ember-truth-helpers/helpers/gt"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"gt",{enumerable:!0,get:function(){return t.gt}})}),define("kredits-web/helpers/gte",["exports","ember-truth-helpers/helpers/gte"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"gte",{enumerable:!0,get:function(){return t.gte}})}),define("kredits-web/helpers/is-array",["exports","ember-truth-helpers/helpers/is-array"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"isArray",{enumerable:!0,get:function(){return t.isArray}})}),define("kredits-web/helpers/is-equal",["exports","ember-truth-helpers/helpers/is-equal"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"isEqual",{enumerable:!0,get:function(){return t.isEqual}})}),define("kredits-web/helpers/is-fulfilled",["exports","ember-promise-helpers/helpers/is-fulfilled"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"isFulfilled",{enumerable:!0,get:function(){return t.isFulfilled}})}),define("kredits-web/helpers/is-pending",["exports","ember-promise-helpers/helpers/is-pending"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"isPending",{enumerable:!0,get:function(){return t.isPending}})}),define("kredits-web/helpers/is-rejected",["exports","ember-promise-helpers/helpers/is-rejected"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"isRejected",{enumerable:!0,get:function(){return t.isRejected}})}),define("kredits-web/helpers/lt",["exports","ember-truth-helpers/helpers/lt"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"lt",{enumerable:!0,get:function(){return t.lt}})}),define("kredits-web/helpers/lte",["exports","ember-truth-helpers/helpers/lte"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"lte",{enumerable:!0,get:function(){return t.lte}})}),define("kredits-web/helpers/not-eq",["exports","ember-truth-helpers/helpers/not-equal"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"notEq",{enumerable:!0,get:function(){return t.notEq}})}),define("kredits-web/helpers/not",["exports","ember-truth-helpers/helpers/not"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"not",{enumerable:!0,get:function(){return t.not}})}),define("kredits-web/helpers/or",["exports","ember-truth-helpers/helpers/or"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"or",{enumerable:!0,get:function(){return t.or}})})
define("kredits-web/helpers/promise-all",["exports","ember-promise-helpers/helpers/promise-all"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"promiseAll",{enumerable:!0,get:function(){return t.promiseAll}})}),define("kredits-web/helpers/promise-hash",["exports","ember-promise-helpers/helpers/promise-hash"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"promiseHash",{enumerable:!0,get:function(){return t.promiseHash}})}),define("kredits-web/helpers/promise-rejected-reason",["exports","ember-promise-helpers/helpers/promise-rejected-reason"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("kredits-web/helpers/xor",["exports","ember-truth-helpers/helpers/xor"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"xor",{enumerable:!0,get:function(){return t.xor}})}),define("kredits-web/initializers/app-version",["exports","ember-cli-app-version/initializer-factory","kredits-web/config/environment"],function(e,t,n){Object.defineProperty(e,"__esModule",{value:!0})
var r=void 0,o=void 0
n.default.APP&&(r=n.default.APP.name,o=n.default.APP.version),e.default={name:"App Version",initialize:(0,t.default)(r,o)}}),define("kredits-web/initializers/container-debug-adapter",["exports","ember-resolver/resolvers/classic/container-debug-adapter"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default={name:"container-debug-adapter",initialize:function(){var e=arguments[1]||arguments[0]
e.register("container-debug-adapter:main",t.default),e.inject("container-debug-adapter:main","namespace","application:main")}}}),define("kredits-web/initializers/export-application-global",["exports","kredits-web/config/environment"],function(e,t){function n(){var e=arguments[1]||arguments[0]
if(!1!==t.default.exportApplicationGlobal){var n
if("undefined"!=typeof window)n=window
else if("undefined"!=typeof global)n=global
else{if("undefined"==typeof self)return
n=self}var r,o=t.default.exportApplicationGlobal
r="string"==typeof o?o:Ember.String.classify(t.default.modulePrefix),n[r]||(n[r]=e,e.reopen({willDestroy:function(){this._super.apply(this,arguments),delete n[r]}}))}}Object.defineProperty(e,"__esModule",{value:!0}),e.initialize=n,e.default={name:"export-application-global",initialize:n}}),define("kredits-web/models/contributor",["exports","kredits-web/utils/cps/bignumber"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Object.extend({id:(0,t.default)("idRaw","toString"),account:null,balance:(0,t.default)("balanceRaw","toNumber"),isCore:!1,ipfsHash:null,kind:null,name:null,url:null,github_username:null,github_uid:null,wiki_username:null,ipfsData:"",isCurrentUser:!1,avatarURL:Ember.computed("github_uid",function(){var e=this.github_uid
if(e)return"https://avatars2.githubusercontent.com/u/"+e+"?v=3&s=128"})})}),define("kredits-web/models/proposal",["exports","kredits-web/utils/cps/bignumber"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Object.extend({id:(0,t.default)("idRaw","toString"),creatorAccount:null,contributorId:(0,t.default)("contributorIdRaw","toString"),amount:(0,t.default)("amountRaw","toNumber"),votesCount:(0,t.default)("votesCountRaw","toNumber"),votesNeeded:(0,t.default)("votesNeededRaw","toNumber"),executed:null,ipfsHash:null,isExecuted:Ember.computed.alias("executed"),kind:null,description:null,details:{},url:null,ipfsData:""})}),define("kredits-web/resolver",["exports","ember-resolver"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=t.default}),define("kredits-web/router",["exports","kredits-web/config/environment"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0})
var n=Ember.Router.extend({location:t.default.locationType,rootURL:t.default.rootURL})
n.map(function(){this.route("spinner"),this.route("proposals",function(){this.route("new")})}),e.default=n}),define("kredits-web/routes/application",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Route.extend({kredits:Ember.inject.service(),beforeModel:function(e){var t=this.kredits
return t.setup().then(function(){t.get("accountNeedsUnlock")&&confirm("It looks like you have an Ethereum wallet available. Please unlock your account.")&&e.retry()}).catch(function(e){console.log("Error initializing Kredits",e)})},afterModel:function(){var e=this
return this.kredits.loadContributorsAndProposals().then(function(){e.kredits.addContractEventHandlers()})}})}),define("kredits-web/routes/spinner",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Route.extend({})}),define("kredits-web/services/ajax",["exports","ember-ajax/services/ajax"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("kredits-web/services/kredits",["exports","npm:ethers","npm:kredits-contracts","kredits-web/config/environment","kredits-web/models/contributor","kredits-web/models/proposal"],function(e,t,n,r,o,s){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Service.extend({currentUserAccounts:null,currentUser:null,currentUserIsContributor:Ember.computed.notEmpty("currentUser"),currentUserIsCore:Ember.computed.alias("currentUser.isCore"),hasAccounts:Ember.computed.notEmpty("currentUserAccounts"),accountNeedsUnlock:Ember.computed("currentUserAccounts",function(){return this.currentUserAccounts&&Ember.isEmpty(this.currentUserAccounts)}),getEthProvider:function(){var e=this
return new Ember.RSVP.Promise(function(n){var o=void 0,s=void 0
void 0!==window.web3?(console.debug("[kredits] Using user-provided instance, e.g. from Mist browser or Metamask"),s=parseInt(window.web3.version.network),(o=new t.default.providers.Web3Provider(window.web3.currentProvider,{chainId:s})).listAccounts().then(function(t){e.set("currentUserAccounts",t),n(o)})):(console.debug("[kredits] Creating new instance from npm module class"),s=parseInt(r.default.contractMetadata.networkId),o=new t.default.providers.JsonRpcProvider(r.default.web3ProviderUrl,{chainId:s}),n(o))})},setup:function(){var e=this
return this.getEthProvider().then(function(t){var r=void 0
return t.getSigner&&(r=t.getSigner()),new n.default(t,r).init().then(function(t){return e.set("kredits",t),e.currentUserAccounts&&e.currentUserAccounts.length>0&&e.getCurrentUser.then(function(t){e.set("currentUser",t)}),t})})},totalSupply:Ember.computed(function(){return this.kredits.Token.functions.totalSupply()}),contributors:[],proposals:[],loadContributorsAndProposals:function(){var e=this
return this.getContributors().then(function(t){return e.contributors.pushObjects(t)}).then(function(){return e.getProposals()}).then(function(t){return e.proposals.pushObjects(t)})},addContributor:function(e){return console.debug("[kredits] add contributor",e),this.kredits.Contributor.add(e).then(function(t){return console.debug("[kredits] add contributor response",t),o.default.create(e)})},getContributors:function(){return this.kredits.Contributor.all().then(function(e){return e.map(function(e){return o.default.create(e)})})},addProposal:function(e){var t=this
return console.debug("[kredits] add proposal",e),this.kredits.Operator.addProposal(e).then(function(n){return console.debug("[kredits] add proposal response",n),e.contributor=t.contributors.findBy("id",e.contributorId),s.default.create(e)})},getProposals:function(){var e=this
return this.kredits.Operator.all().then(function(t){return t.map(function(t){return t.contributor=e.contributors.findBy("id",t.contributorId.toString()),s.default.create(t)})})},vote:function(e){return console.debug("[kredits] vote for",e),this.kredits.Operator.functions.vote(e).then(function(e){return console.debug("[kredits] vote response",e),e})},getCurrentUser:Ember.computed("kredits.provider",function(){var e=this
return Ember.isEmpty(this.currentUserAccounts)?Ember.RSVP.resolve():this.kredits.Contributor.functions.getContributorIdByAddress(this.get("currentUserAccounts.firstObject")).then(function(t){return 0===(t=t.toNumber())?Ember.RSVP.resolve():e.kredits.Contributor.getById(t)})}),findProposalById:function(e){return this.proposals.findBy("id",e.toString())},addContractEventHandlers:function(){this.kredits.Operator.on("ProposalCreated",this.handleProposalCreated.bind(this)).on("ProposalVoted",this.handleProposalVoted.bind(this)).on("ProposalExecuted",this.handleProposalExecuted.bind(this)),this.kredits.Token.on("Transfer",this.handleTransfer.bind(this))},handleProposalCreated:function(e){var t=this
this.findProposalById(e)?console.debug("[events] proposal exists, not adding from event"):this.kredits.Operator.getById(e).then(function(e){e.contributor=t.contributors.findBy("id",e.contributorId.toString()),t.proposals.pushObject(s.default.create(e))})},handleProposalVoted:function(e,t,n){var r=this.findProposalById(e)
r&&r.set("votesCount",n)},handleProposalExecuted:function(e,t,n){var r=this.findProposalById(e)
r.get("isExecuted")?console.debug("[events] proposal already executed, not adding from event"):(r.set("executed",!0),this.contributors.findBy("id",t.toString()).incrementProperty("balance",n.toNumber()))},handleTransfer:function(e,t,n){n=n.toNumber(),this.contributors.findBy("address",e).decrementProperty("balance",n),this.contributors.findBy("address",t).incrementProperty("balance",n)}})}),define("kredits-web/templates/application",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"Lp1+Ni2p",block:'{"symbols":[],"statements":[[6,"main"],[8],[0,"\\n "],[1,[20,"outlet"],false],[0,"\\n"],[9],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"kredits-web/templates/application.hbs"}})}),define("kredits-web/templates/index",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"Vx25wHka",block:'{"symbols":[],"statements":[[4,"if",[[22,["kredits","hasAccounts"]]],null,{"statements":[[0," "],[6,"section"],[10,"id","user-account"],[8],[0,"\\n"],[4,"if",[[22,["kredits","currentUser"]]],null,{"statements":[[0," "],[1,[22,["kredits","currentUser","name"]],false],[0,"\\n"],[4,"if",[[22,["kredits","currentUserIsCore"]]],null,{"statements":[[0," (core)\\n"]],"parameters":[]},null],[0," Account: "],[1,[22,["kredits","currentUser","account"]],false],[0,"\\n"]],"parameters":[]},null],[0," "],[9],[0,"\\n"]],"parameters":[]},null],[0,"\\n"],[6,"section"],[10,"id","contributors"],[8],[0,"\\n "],[6,"header"],[8],[0,"\\n "],[6,"h2"],[8],[0,"Kosmos Contributors"],[9],[0,"\\n "],[9],[0,"\\n "],[6,"div"],[10,"class","content"],[8],[0,"\\n "],[1,[26,"contributor-list",null,[["contributors"],[[22,["contributorsSorted"]]]]],false],[0,"\\n\\n "],[6,"p"],[10,"class","stats"],[8],[0,"\\n "],[6,"span"],[10,"class","number"],[8],[1,[26,"await",[[22,["kredits","totalSupply"]]],null],false],[9],[0," kredits issued and distributed among\\n "],[6,"span"],[10,"class","number"],[8],[1,[22,["contributorsWithKredits","length"]],false],[9],[0," contributors.\\n "],[9],[0,"\\n "],[9],[0,"\\n"],[9],[0,"\\n\\n"],[4,"if",[[22,["proposalsOpen"]]],null,{"statements":[[0," "],[6,"section"],[10,"id","proposals-open"],[8],[0,"\\n "],[6,"header"],[8],[0,"\\n "],[6,"h2"],[8],[0,"Open Proposals"],[9],[0,"\\n "],[9],[0,"\\n "],[6,"div"],[10,"class","content"],[8],[0,"\\n"],[0," "],[1,[26,"proposal-list",null,[["proposals","confirmProposal","contractInteractionEnabled"],[[22,["proposalsOpenSorted"]],[26,"action",[[21,0,[]],"confirmProposal"],null],[22,["kredits","hasAccounts"]]]]],false],[0,"\\n\\n"],[4,"if",[[22,["kredits","hasAccounts"]]],null,{"statements":[[0," "],[6,"p"],[10,"class","actions"],[8],[0,"\\n "],[4,"link-to",["proposals.new"],null,{"statements":[[0,"Create new proposal"]],"parameters":[]},null],[0,"\\n "],[9],[0,"\\n"]],"parameters":[]},null],[0," "],[9],[0,"\\n "],[9],[0,"\\n"]],"parameters":[]},null],[0,"\\n"],[6,"section"],[10,"id","proposals-closed"],[8],[0,"\\n "],[6,"header"],[8],[0,"\\n "],[6,"h2"],[8],[0,"Closed Proposals"],[9],[0,"\\n "],[9],[0,"\\n "],[6,"div"],[10,"class","content"],[8],[0,"\\n "],[1,[26,"proposal-list",null,[["proposals","confirmProposal"],[[22,["proposalsClosedSorted"]],[26,"action",[[21,0,[]],"confirmProposal"],null]]]],false],[0,"\\n\\n"],[4,"if",[[22,["kredits","hasAccounts"]]],null,{"statements":[[0," "],[6,"p"],[10,"class","actions"],[8],[0,"\\n "],[4,"link-to",["proposals.new"],null,{"statements":[[0,"Create new proposal"]],"parameters":[]},null],[0,"\\n "],[9],[0,"\\n"]],"parameters":[]},null],[0," "],[9],[0,"\\n"],[9],[0,"\\n\\n"],[6,"section"],[10,"id","add-contributor"],[8],[0,"\\n "],[6,"header"],[8],[0,"\\n "],[6,"h2"],[8],[0,"Add Contributor"],[9],[0,"\\n "],[9],[0,"\\n\\n "],[6,"div"],[10,"class","content"],[8],[0,"\\n"],[4,"if",[[22,["kredits","currentUser","isCore"]]],null,{"statements":[[0," "],[1,[26,"add-contributor",null,[["contributors","save"],[[22,["contributors"]],[26,"action",[[21,0,[]],"save"],null]]]],false],[0,"\\n"]],"parameters":[]},{"statements":[[0," Only core team members can add new contributors. Please ask someone to set you up.\\n"]],"parameters":[]}],[0," "],[9],[0,"\\n"],[9],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"kredits-web/templates/index.hbs"}})}),define("kredits-web/templates/loading",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"mH9O+n3h",block:'{"symbols":[],"statements":[[1,[20,"loading-spinner"],false],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"kredits-web/templates/loading.hbs"}})}),define("kredits-web/templates/proposals/new",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"AndvFYbw",block:'{"symbols":[],"statements":[[6,"section"],[10,"id","add-proposal"],[8],[0,"\\n "],[6,"headerLine truncated
return r&&t.default.utils.isBigNumber(r)?r[n]():r},set:function(r,o){return o=t.default.utils.bigNumberify(o),this.set(e,o),o[n]()}})}}),define("kredits-web/config/environment",[],function(){try{var e="kredits-web/config/environment",t=document.querySelector('meta[name="'+e+'"]').getAttribute("content"),n={default:JSON.parse(unescape(t))}
return Object.defineProperty(n,"__esModule",{value:!0}),n}catch(t){throw new Error('Could not read config from meta tag with name "'+e+'".')}}),runningTests||require("kredits-web/app").default.create({name:"kredits-web",version:"1.0.0+3e7fe1b5"})
//# sourceMappingURL=kredits-web-97691ce8e620ed77b6f60ef39dd66b5d.map
Loaded 100 of 213 files, more files were not shown because too many files have changed in this diff. Show more