Use ethers.js instead of the old web3 #29
@@ -47,15 +47,16 @@ export default Ember.Controller.extend({
|
||||
contributorsSorting: ['balance:desc'],
|
||||
contributorsSorted: Ember.computed.sort('contributorsWithKredits', 'contributorsSorting'),
|
||||
|
||||
watchContractEvents: function() {
|
||||
init() {
|
||||
this._super(...arguments);
|
||||
this.get('kredits.kreditsContract')
|
||||
.then((contract) => {
|
||||
contract.onproposalvoted = this._handleProposalVoted.bind(this); //function(a,b,c) { console.log('voted', a, b, c) }
|
||||
contract.onproposalvoted = this._handleProposalVoted.bind(this);
|
||||
contract.onproposalcreated = this._handleProposalCreated.bind(this);
|
||||
contract.onproposalexecuted = this._handleProposalExecuted.bind(this);
|
||||
// TODO: transfer on the token contract
|
||||
});
|
||||
}.on('init'),
|
||||
},
|
||||
|
||||
_handleProposalCreated(proposalId, creatorAddress, recipientAddress, amount) {
|
||||
if (Ember.isPresent(this.get('model.proposals')
|
||||
|
||||
@@ -45,7 +45,7 @@ export default Service.extend({
|
||||
} else {
|
||||
debug('[kredits] Creating new instance from npm module class');
|
||||
let providerUrl = localStorage.getItem('config:web3ProviderUrl') || config.web3ProviderUrl;
|
||||
let networkId = config.contractMetadata.networkId;
|
||||
let networkId = parseInt(config.contractMetadata.networkId);
|
||||
web3Provider = new ethers.providers.JsonRpcProvider(providerUrl, {chainId: networkId});
|
||||
}
|
||||
|
||||
|
||||
Generated
+1
-1
@@ -25695,7 +25695,7 @@
|
||||
}
|
||||
},
|
||||
"kredits-contracts": {
|
||||
"version": "github:67P/truffle-kredits#7403eb3b80ca02553ebb9a954d600fcd56af24fb",
|
||||
"version": "github:67P/truffle-kredits#4d2ba2a4bf1bb3ceb1ae9c768abfc73a9cf5ab00",
|
||||
"dev": true
|
||||
},
|
||||
"lcid": {
|
||||
|
||||
@@ -28,7 +28,12 @@ let addFixtures = function(controller) {
|
||||
};
|
||||
|
||||
test('doesn\'t contain people with 0 balance', function(assert) {
|
||||
let controller = this.subject();
|
||||
// This is a bit strange... we do not want the controller to call the init function defined in the controller that
|
||||
// initializes the event handlers on the contracts. Main reason is that we do not have proper contracts in test mode.
|
||||
// this seems to work. but probably kills some controller stuff, which is fine in this test
|
||||
let controller = this.subject({
|
||||
init: function() { }
|
||||
});
|
||||
addFixtures(controller);
|
||||
|
|
||||
|
||||
let contributorsSorted = controller.get('contributorsSorted');
|
||||
|
||||
Reference in New Issue
Block a user
I think a cleaner way would be to abstract adding the contract handlers into its own function, and then just overwrite that one in the test. That would make it easier to reason with in both the controller as well as the test.
Good idea! We'll do that in a follow up PR.