Continue Contribution contract and JS wrapper

This commit is contained in:
2018-09-29 19:46:37 +02:00
parent 6b8f718051
commit dae44cac70
8 changed files with 118 additions and 26 deletions

View File

@@ -0,0 +1,51 @@
const ethers = require('ethers');
const RSVP = require('rsvp');
const ContributionSerializer = require('../serializers/contribution');
const Base = require('./base');
class Contribution extends Base {
all() {
return this.functions.contributionsCount()
.then((count) => {
count = count.toNumber();
let contributions = [];
for (let id = 1; id <= count; id++) {
contributions.push(this.getById(id));
}
return RSVP.all(contributions);
});
}
getById(id) {
id = ethers.utils.bigNumberify(id);
return this.functions.getContribution(id)
.then((data) => {
return this.ipfs.catAndMerge(data, ContributionSerializer.deserialize);
});
}
getByContributor(contributor) {
return this.functions.balanceOf(contributor)
then((balance) => {
count = balance.toNumber();
let contributions = [];
for (let index = 0; index <= count; index++) {
this.functions.tokenOfOwnerByIndex(contributor, index)
.then((id) => {
contributions.push(this.getById(id));
});
}
return RSVP.all(contributions);
});
}
}
module.exports = Contribution;

View File

@@ -1,5 +1,6 @@
module.exports = {
Contributors: require('./contributor'),
Contribution: require('./contribution'),
Operator: require('./operator'),
Token: require('./token'),
Registry: require('./registry')