From ece573ab3ca538d9d068d021c32f0350b8d09972 Mon Sep 17 00:00:00 2001 From: Michael Bumann Date: Sun, 5 Feb 2017 21:48:18 +0800 Subject: [PATCH] load kredits contract definition from kredits-contracts package --- app/services/kredits.js | 16 ++++++++++------ config/environment.js | 8 +------- package.json | 3 ++- vendor/contract-abis.js | 1 - 4 files changed, 13 insertions(+), 15 deletions(-) delete mode 100644 vendor/contract-abis.js diff --git a/app/services/kredits.js b/app/services/kredits.js index 2042bd1..9d9c9ed 100644 --- a/app/services/kredits.js +++ b/app/services/kredits.js @@ -3,6 +3,7 @@ import Web3 from 'npm:web3'; import config from 'kredits-web/config/environment'; import Contributor from 'kredits-web/models/contributor'; import Proposal from 'kredits-web/models/proposal'; +import kreditsContracts from 'npm:kredits-contracts'; export default Ember.Service.extend({ @@ -10,7 +11,7 @@ export default Ember.Service.extend({ web3Provided: false, // Web3 provided (using Mist Browser, Metamask et al.) web3: function() { - if (Ember.isPresent(this.get('web3Instance'))) { + if (this.get('web3Instance')) { return this.get('web3Instance'); } @@ -22,7 +23,7 @@ export default Ember.Service.extend({ this.set('web3Provided', true); } else { Ember.Logger.debug('[kredits] Creating new instance from npm module class'); - let provider = new Web3.providers.HttpProvider("http://139.59.248.169:8545"); + let provider = new Web3.providers.HttpProvider(config.web3ProviderUrl); web3Instance = new Web3(provider); } @@ -33,11 +34,14 @@ export default Ember.Service.extend({ }.property('web3Instance'), kreditsContract: function() { - // TODO cache this - let contract = this.get('web3') - .eth.contract(config.kreditsContract.ABI) - .at(config.kreditsContract.address); + if (this.get('kreditsContractInstance')) { + return this.get('kreditsContractInstance'); + } + + let contract = kreditsContracts(this.get('web3'))['Kredits']; + window.Kredits = contract; + this.set('kreditsContractInstance', contract); return contract; }.property('web3'), diff --git a/config/environment.js b/config/environment.js index 253cbed..2e9ed24 100644 --- a/config/environment.js +++ b/config/environment.js @@ -1,6 +1,4 @@ /* jshint node: true */ -let contracts = require('../vendor/contract-abis'); - module.exports = function(environment) { var ENV = { modulePrefix: 'kredits-web', @@ -21,15 +19,11 @@ module.exports = function(environment) { APP: { // Here you can pass flags/options to your application instance // when it is created - }, - - kreditsContract: { - ABI: contracts['Kredits'].abi } }; if (environment === 'development') { - ENV.kreditsContract.address = '0x9C68Af50e97f5605402B4C01e7aB836ed7145e8B'; + ENV.web3ProviderUrl = "http://139.59.248.169:8545"; // ENV.APP.LOG_RESOLVER = true; // ENV.APP.LOG_ACTIVE_GENERATION = true; // ENV.APP.LOG_TRANSITIONS = true; diff --git a/package.json b/package.json index 0623470..8126c77 100644 --- a/package.json +++ b/package.json @@ -36,7 +36,8 @@ "ember-load-initializers": "^0.5.1", "ember-resolver": "^2.0.3", "loader.js": "^4.0.10", - "web3": "^0.18.2" + "web3": "^0.18.2", + "kredits-contracts": "67P/kredits-contracts" }, "engines": { "node": ">= 0.12.0" diff --git a/vendor/contract-abis.js b/vendor/contract-abis.js deleted file mode 100644 index 8a4476e..0000000 --- a/vendor/contract-abis.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = {"Kredits":{"abi":[{"constant":false,"inputs":[{"name":"_proposalId","type":"uint256"}],"name":"vote","outputs":[{"name":"_pId","type":"uint256"},{"name":"_executed","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"proposals","outputs":[{"name":"creator","type":"address"},{"name":"recipient","type":"address"},{"name":"votesCount","type":"uint256"},{"name":"votesNeeded","type":"uint256"},{"name":"amount","type":"uint256"},{"name":"executed","type":"bool"},{"name":"url","type":"string"},{"name":"ipfsHash","type":"string"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"creator","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"proposalsCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_recipient","type":"address"},{"name":"_amount","type":"uint256"},{"name":"_url","type":"string"},{"name":"_ipfsHash","type":"string"}],"name":"addProposal","outputs":[{"name":"proposalId","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_name","type":"string"},{"name":"_id","type":"string"},{"name":"_ipfsHash","type":"string"}],"name":"updateProfile","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"contributors","outputs":[{"name":"id","type":"string"},{"name":"name","type":"string"},{"name":"ipfsHash","type":"string"},{"name":"exists","type":"bool"},{"name":"isMember","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"kill","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"kredits","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"contributorsCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"contributorAddresses","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"ipfsHash","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_member","type":"address"}],"name":"addMember","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_recipient","type":"address"},{"name":"_amount","type":"uint256"}],"name":"mintFor","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"type":"function"},{"inputs":[{"name":"_ipfsHash","type":"string"}],"payable":false,"type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"id","type":"uint256"},{"indexed":false,"name":"creator","type":"address"},{"indexed":false,"name":"recipient","type":"address"},{"indexed":false,"name":"amount","type":"uint256"},{"indexed":false,"name":"url","type":"string"},{"indexed":false,"name":"ipfsHash","type":"string"}],"name":"ProposalCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"id","type":"uint256"},{"indexed":false,"name":"recipient","type":"address"},{"indexed":false,"name":"amount","type":"uint256"},{"indexed":false,"name":"url","type":"string"},{"indexed":false,"name":"ipfsHash","type":"string"}],"name":"ProposalExecuted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Approval","type":"event"}]},"SafeMath":{"abi":[]},"Token":{"abi":[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Approval","type":"event"}]}}; \ No newline at end of file