Merge pull request #90 from 67P/update-kredits-contracts

Update kredits-contracts and ethers.js
This commit was merged in pull request #90.
This commit is contained in:
2019-04-03 11:02:15 +02:00
committed by GitHub
4 changed files with 1256 additions and 639 deletions
+11 -19
View File
@@ -11,7 +11,6 @@ import config from 'kredits-web/config/environment';
import Contributor from 'kredits-web/models/contributor' import Contributor from 'kredits-web/models/contributor'
import Proposal from 'kredits-web/models/proposal' import Proposal from 'kredits-web/models/proposal'
export default Service.extend({ export default Service.extend({
currentUserAccounts: null, // default to not having an account. this is the wen web3 is loaded. currentUserAccounts: null, // default to not having an account. this is the wen web3 is loaded.
@@ -36,14 +35,9 @@ export default Service.extend({
getEthProvider: function() { getEthProvider: function() {
return new RSVP.Promise((resolve) => { return new RSVP.Promise((resolve) => {
let ethProvider; let ethProvider;
let networkId;
if (typeof window.web3 !== 'undefined') { if (typeof window.web3 !== 'undefined') {
console.debug('[kredits] Using user-provided instance, e.g. from Mist browser or Metamask'); console.debug('[kredits] Using user-provided instance, e.g. from Mist browser or Metamask');
networkId = parseInt(window.web3.version.network); ethProvider = new ethers.providers.Web3Provider(window.web3.currentProvider);
ethProvider = new ethers.providers.Web3Provider(
window.web3.currentProvider,
{ chainId: networkId }
);
ethProvider.listAccounts().then((accounts) => { ethProvider.listAccounts().then((accounts) => {
this.set('currentUserAccounts', accounts); this.set('currentUserAccounts', accounts);
const ethSigner = accounts.length === 0 ? null : ethProvider.getSigner(); const ethSigner = accounts.length === 0 ? null : ethProvider.getSigner();
@@ -54,12 +48,8 @@ export default Service.extend({
}); });
} else { } else {
console.debug('[kredits] Creating new instance from npm module class'); console.debug('[kredits] Creating new instance from npm module class');
networkId = parseInt(config.contractMetadata.networkId); console.debug(`[kredits] providerURL: ${config.web3ProviderUrl}`);
console.debug(`[kredits] networkId=${networkId} providerURL: ${config.web3ProviderUrl}`); ethProvider = new ethers.providers.JsonRpcProvider(config.web3ProviderUrl);
ethProvider = new ethers.providers.JsonRpcProvider(
config.web3ProviderUrl,
{ chainId: networkId }
);
resolve({ resolve({
ethProvider: ethProvider, ethProvider: ethProvider,
ethSigner: null ethSigner: null
@@ -72,6 +62,8 @@ export default Service.extend({
return this.getEthProvider().then((providerAndSigner) => { return this.getEthProvider().then((providerAndSigner) => {
let kredits = new Kredits(providerAndSigner.ethProvider, providerAndSigner.ethSigner, { let kredits = new Kredits(providerAndSigner.ethProvider, providerAndSigner.ethSigner, {
addresses: { Kernel: config.kreditsKernelAddress },
apm: config.kreditsApmDomain,
ipfsConfig: config.ipfs ipfsConfig: config.ipfs
}); });
return kredits return kredits
@@ -121,7 +113,7 @@ export default Service.extend({
addProposal(attributes) { addProposal(attributes) {
console.debug('[kredits] add proposal', attributes); console.debug('[kredits] add proposal', attributes);
return this.kredits.Operator.addProposal(attributes) return this.kredits.Proposal.addProposal(attributes)
.then((data) => { .then((data) => {
console.debug('[kredits] add proposal response', data); console.debug('[kredits] add proposal response', data);
attributes.contributor = this.contributors.findBy('id', attributes.contributorId); attributes.contributor = this.contributors.findBy('id', attributes.contributorId);
@@ -130,7 +122,7 @@ export default Service.extend({
}, },
getProposals() { getProposals() {
return this.kredits.Operator.all() return this.kredits.Proposal.all()
.then((proposals) => { .then((proposals) => {
return proposals.map((proposal) => { return proposals.map((proposal) => {
proposal.contributor = this.contributors.findBy('id', proposal.contributorId.toString()); proposal.contributor = this.contributors.findBy('id', proposal.contributorId.toString());
@@ -142,7 +134,7 @@ export default Service.extend({
vote(proposalId) { vote(proposalId) {
console.debug('[kredits] vote for', proposalId); console.debug('[kredits] vote for', proposalId);
return this.kredits.Operator.functions.vote(proposalId) return this.kredits.Proposal.functions.vote(proposalId)
.then((data) => { .then((data) => {
console.debug('[kredits] vote response', data); console.debug('[kredits] vote response', data);
return data; return data;
@@ -172,8 +164,8 @@ export default Service.extend({
// Contract events // Contract events
addContractEventHandlers() { addContractEventHandlers() {
// Operator events // Proposal events
this.kredits.Operator this.kredits.Proposal
.on('ProposalCreated', this.handleProposalCreated.bind(this)) .on('ProposalCreated', this.handleProposalCreated.bind(this))
.on('ProposalVoted', this.handleProposalVoted.bind(this)) .on('ProposalVoted', this.handleProposalVoted.bind(this))
.on('ProposalExecuted', this.handleProposalExecuted.bind(this)); .on('ProposalExecuted', this.handleProposalExecuted.bind(this));
@@ -191,7 +183,7 @@ export default Service.extend({
return; return;
} }
this.kredits.Operator.getById(proposalId) this.kredits.Proposal.getById(proposalId)
.then((proposal) => { .then((proposal) => {
proposal.contributor = this.contributors.findBy('id', proposal.contributorId.toString()); proposal.contributor = this.contributors.findBy('id', proposal.contributorId.toString());
this.proposals.pushObject(Proposal.create(proposal)); this.proposals.pushObject(Proposal.create(proposal));
+6 -6
View File
@@ -35,8 +35,6 @@ module.exports = function(environment) {
] ]
}, },
contractMetadata: { networkId: '42' },
web3ProviderUrl: 'https://kovan.infura.io/keUVk6OMaAvpmRF3m57n', web3ProviderUrl: 'https://kovan.infura.io/keUVk6OMaAvpmRF3m57n',
ipfs: { ipfs: {
@@ -52,7 +50,6 @@ module.exports = function(environment) {
// ENV.APP.LOG_TRANSITIONS = true; // ENV.APP.LOG_TRANSITIONS = true;
// ENV.APP.LOG_TRANSITIONS_INTERNAL = true; // ENV.APP.LOG_TRANSITIONS_INTERNAL = true;
// ENV.APP.LOG_VIEW_LOOKUPS = true; // ENV.APP.LOG_VIEW_LOOKUPS = true;
ENV.contractMetadata['networkId'] = '42';
ENV.web3ProviderUrl = 'https://kovan.infura.io/keUVk6OMaAvpmRF3m57n'; ENV.web3ProviderUrl = 'https://kovan.infura.io/keUVk6OMaAvpmRF3m57n';
ENV.ipfs = { ENV.ipfs = {
@@ -78,12 +75,15 @@ module.exports = function(environment) {
// here you can enable a production-specific feature // here you can enable a production-specific feature
} }
if (process.env.NETWORK_ID) {
ENV.contractMetadata['networkId'] = process.env.NETWORK_ID;
}
if (process.env.WEB3_PROVIDER_URL) { if (process.env.WEB3_PROVIDER_URL) {
ENV.web3ProviderUrl = process.env.WEB3_PROVIDER_URL; ENV.web3ProviderUrl = process.env.WEB3_PROVIDER_URL;
} }
if (process.env.KREDITS_KERNEL_ADDRESS) {
ENV.kreditsKernelAddress = process.env.KREDITS_KERNEL_ADDRESS;
}
if (process.env.KREDITS_APM_DOMAIN) {
ENV.kreditsApmDomain = process.env.KREDITS_APM_DOMAIN;
}
return ENV; return ENV;
}; };
+1236 -611
View File
File diff suppressed because it is too large Load Diff
+3 -3
View File
@@ -15,7 +15,7 @@
"lint:js": "eslint .", "lint:js": "eslint .",
"start": "ember serve", "start": "ember serve",
"test": "ember test", "test": "ember test",
"start:local": "NETWORK_ID=100 WEB3_PROVIDER_URL=http://localhost:7545 ember s", "start:local": "WEB3_PROVIDER_URL=http://localhost:7545 ember s",
"build": "ember build", "build": "ember build",
"build-prod": "ember build --environment production", "build-prod": "ember build --environment production",
"update-version-file": "bash scripts/update-version-file.sh", "update-version-file": "bash scripts/update-version-file.sh",
@@ -54,9 +54,9 @@
"ember-source": "~3.8.0", "ember-source": "~3.8.0",
"ember-truth-helpers": "github:jmurphyau/ember-truth-helpers#31a14373a31f1f82c77537720549b47a95c28e5f", "ember-truth-helpers": "github:jmurphyau/ember-truth-helpers#31a14373a31f1f82c77537720549b47a95c28e5f",
"eslint-plugin-ember": "^5.2.0", "eslint-plugin-ember": "^5.2.0",
"ethers": "3.0.15", "ethers": "^4.0.27",
"kosmos-schemas": "^1.1.2", "kosmos-schemas": "^1.1.2",
"kredits-contracts": "^3.x", "kredits-contracts": "github:67P/kredits-contracts#aragonos",
"loader.js": "^4.7.0", "loader.js": "^4.7.0",
"qunit-dom": "^0.8.0", "qunit-dom": "^0.8.0",
"tv4": "^1.3.0" "tv4": "^1.3.0"