Skip to content

Commit ea54f75

Browse files
committed
initialize chain
1 parent c0420d7 commit ea54f75

File tree

3 files changed

+54
-0
lines changed

3 files changed

+54
-0
lines changed

lib/chain_manager.js

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
var fs = require('fs');
2+
var web3 = require('web3');
3+
4+
ChainManager = function() { }
5+
6+
ChainManager.prototype.loadConfigFile = function(filename) {
7+
try {
8+
var obj = JSON.parse(fs.readFileSync(filename));
9+
this.chainManagerConfig = obj;
10+
} catch (e) {
11+
throw new Error("error reading " + filename);
12+
}
13+
return this;
14+
};
15+
16+
ChainManager.prototype.loadConfig = function(config) {
17+
this.chainManagerConfig = config;
18+
return this;
19+
};
20+
21+
ChainManager.prototype.init = function(env, blockchainConfig) {
22+
var config = blockchainConfig.config(env);
23+
24+
web3.setProvider(new web3.providers.HttpProvider("http://" + config.rpcHost + ":" + config.rpcPort));
25+
26+
var chainId = web3.eth.getBlock(0).hash;
27+
28+
if (this.chainManagerConfig[chainId] === undefined) {
29+
this.chainManagerConfig[chainId] = {contracts: []};
30+
}
31+
}
32+
33+
module.exports = ChainManager;
34+

test/chain_manager.js

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
var ChainManager = require('../lib/chain_manager.js');
2+
var Config = require('../lib/config/config.js');
3+
var Blockchain = require('../lib/blockchain.js');
4+
var assert = require('assert');
5+
6+
describe('embark.chain_manager', function() {
7+
var chainManager = (new ChainManager()).loadConfigFile('./test/support/chain_manager.json');
8+
var blockchainConfig = (new Config.Blockchain()).loadConfigFile('test/support/blockchain.yml');
9+
10+
describe('#init', function() {
11+
chainManager.init('development', blockchainConfig);
12+
13+
it('should initialize chain', function() {
14+
assert.equal(chainManager.chainManagerConfig['0x629e768beb87dc8c54a475d310a7196e86c97d0006e5a6d34a8217726c90223f'] != undefined, true);
15+
assert.equal(chainManager.chainManagerConfig['0x629e768beb87dc8c54a475d310a7196e86c97d0006e5a6d34a8217726c90223f'].contracts.length, 0);
16+
});
17+
18+
});
19+
});

test/support/chain_manager.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{}

0 commit comments

Comments
 (0)