Merge branch 'develop' of github.com:iurimatias/embark-framework into develop

This commit is contained in:
Iuri Matias 2015-07-09 07:24:21 -04:00
commit 0655957e0f
4 changed files with 125 additions and 8266 deletions

View File

@ -213,3 +213,14 @@ LiveReload Plugin
====== ======
Embark works quite well with the LiveReload Plugin Embark works quite well with the LiveReload Plugin
Debugging embark
======
Because embark is internally using grunt tasks, debugging is not straightforward. Example
- you want to debug `embark deploy`
- normally you would write something like `node-debug -p 7000 embark -- deploy`
- This gives you nothing with embark. If you look at `deploy` command in [`./bin/embark`](https://github.com/iurimatias/embark-framework/blob/develop/bin/embark#L32-L35) you will notice that it internally runs grunt task `grunt deploy_contracts:[env]`
- with this knowledge we can prepare proper command to start debugging
- `node-debug -p 7000 grunt -- deploy_contracts:development`
- [here](https://github.com/iurimatias/embark-framework/blob/develop/tasks/tasks.coffee) is list of all debuggable grunt tasks

8339
js/web3.js

File diff suppressed because one or more lines are too long

View File

@ -3,6 +3,7 @@ var fs = require('fs');
var grunt = require('grunt'); var grunt = require('grunt');
var readYaml = require('read-yaml'); var readYaml = require('read-yaml');
var Config = require('./config/config.js'); var Config = require('./config/config.js');
var sleep = require('sleep');
Deploy = function(env, contractFiles, blockchainConfig, contractsConfig) { Deploy = function(env, contractFiles, blockchainConfig, contractsConfig) {
//this.blockchainConfig = (new Config.Blockchain()).loadConfigFile('config/blockchain.yml').config(env); //this.blockchainConfig = (new Config.Blockchain()).loadConfigFile('config/blockchain.yml').config(env);
@ -62,13 +63,14 @@ Deploy.prototype.deploy_contracts = function(env) {
gasPrice: contract.gasPrice gasPrice: contract.gasPrice
}); });
contractAddress = contractObject["new"].apply(contractObject, contractParams).address; var transactionHash = contractObject["new"].apply(contractObject, contractParams).transactionHash;
this.deployedContracts[className] = transactionHash;
// TODO: get this with sync until a different mechanism is implemented
//this.deployedContracts[className] = contractAddress;
//console.log("address is " + contractAddress);
this.deployedContracts[className] = contractAddress; console.log("deployed " + className + " with transaction hash " + transactionHash);
//console.log("deployed " + className + " at " + contractAddress);
console.log("address is " + contractAddress);
console.log("deployed " + className + " at " + contractAddress);
}
} }
}; };
@ -84,7 +86,17 @@ Deploy.prototype.generate_abi_file = function() {
var contract = this.contractDB[className]; var contract = this.contractDB[className];
var abi = JSON.stringify(contract.compiled.info.abiDefinition); var abi = JSON.stringify(contract.compiled.info.abiDefinition);
var contractAddress = deployedContract; var transactionHash = deployedContract;
//var contractAddress = deployedContract;
console.log('trying to obtain ' + className + ' address...');
var receipt = null;
while ((receipt = web3.eth.getTransactionReceipt(transactionHash)) === null) {
sleep.sleep(1);
}
var contractAddress = receipt.contractAddress;
console.log('address is ' + contractAddress);
result += className + "Abi = " + abi + ";"; result += className + "Abi = " + abi + ";";
result += className + "Contract = web3.eth.contract(" + className + "Abi);"; result += className + "Contract = web3.eth.contract(" + className + "Abi);";
result += className + " = " + className + "Contract.at('" + contractAddress + "');"; result += className + " = " + className + "Contract.at('" + contractAddress + "');";

View File

@ -25,17 +25,18 @@
"grunt-contrib-uglify": "^0.9.1", "grunt-contrib-uglify": "^0.9.1",
"grunt-contrib-watch": "^0.6.1", "grunt-contrib-watch": "^0.6.1",
"grunt-open": "^0.2.3", "grunt-open": "^0.2.3",
"hashmerge": "^1.0.2",
"jasmine": "^2.3.1",
"matchdep": "^0.3.0", "matchdep": "^0.3.0",
"methodmissing": "^0.0.3",
"python": "^0.0.4",
"read-yaml": "^1.0.0", "read-yaml": "^1.0.0",
"shelljs": "^0.5.0", "shelljs": "^0.5.0",
"web3": "^0.5.0", "sleep": "^2.0.0",
"wrench": "^1.5.8",
"hashmerge": "^1.0.2",
"sync-me": "^0.1.1", "sync-me": "^0.1.1",
"python": "^0.0.4", "toposort": "^0.2.10",
"methodmissing": "^0.0.3", "web3": "^0.8.1",
"jasmine": "^2.3.1", "wrench": "^1.5.8"
"toposort": "^0.2.10"
}, },
"author": "Iuri Matias <iuri.matias@gmail.com>", "author": "Iuri Matias <iuri.matias@gmail.com>",
"contributors": [], "contributors": [],