diff --git a/config/seeds.js b/config/seeds.js index a2c54a0..751b8da 100644 --- a/config/seeds.js +++ b/config/seeds.js @@ -31,18 +31,55 @@ const contractCalls = [ wiki_username: 'Manuel', }, { gasLimit: 200000 }]], - ['Contribution', 'add', [{ contributorId: 1, contributorIpfsHash: 'QmWKCYGr2rSf6abUPaTYqf98urvoZxGrb7dbspFZA6oyVF', date: '2019-04-11', amount: 500, kind: 'dev', description: '[67P/kredits-contracts] Test this thing', url: '' }, { gasLimit: 350000 }]], - ['Contribution', 'add', [{ contributorId: 2, contributorIpfsHash: 'QmcHzEeAM26HV2zHTf5HnZrCtCtGdEccL5kUtDakAB7ozB', date: '2019-04-11', amount: 1500, kind: 'dev', description: '[67P/kredits-web] Reviewed stuff', url: '' }, { gasLimit: 350000 }]], - ['Contribution', 'add', [{ contributorId: 1, contributorIpfsHash: 'QmWKCYGr2rSf6abUPaTYqf98urvoZxGrb7dbspFZA6oyVF', date: '2019-04-11', amount: 5000, kind: 'dev', description: '[67P/kredits-contracts] Add tests', url: '' }, { gasLimit: 350000 }]], - ['Contribution', 'add', [{ contributorId: 1, contributorIpfsHash: 'QmWKCYGr2rSf6abUPaTYqf98urvoZxGrb7dbspFZA6oyVF', date: '2019-04-11', amount: 1500, kind: 'dev', description: '[67P/kredits-contracts] Introduce contribution token', url: '' }, { gasLimit: 350000 }]], - ['Contribution', 'add', [{ contributorId: 2, contributorIpfsHash: 'QmcHzEeAM26HV2zHTf5HnZrCtCtGdEccL5kUtDakAB7ozB', date: '2019-04-11', amount: 5000, kind: 'dev', description: '[67P/kredits-web] Expense UI, first draft', url: '' }, { gasLimit: 350000 }]], + ['Contribution', 'add', [{ + contributorId: 1, contributorIpfsHash: 'QmWKCYGr2rSf6abUPaTYqf98urvoZxGrb7dbspFZA6oyVF', + date: '2019-04-11', amount: 500, kind: 'dev', + description: '[67P/kredits-contracts] Test this thing', + url: '', + confirmedAtBlock: 1, + }, { gasLimit: 350000 }]], - ['Reimbursement', 'add', [{amount: 1116000, recipientId: 1, token: '0x2260fac5e5542a773aa44fbcfedf7c193bc2c599', expenses: [ + ['Contribution', 'add', [{ + contributorId: 2, contributorIpfsHash: 'QmcHzEeAM26HV2zHTf5HnZrCtCtGdEccL5kUtDakAB7ozB', + date: '2019-04-11', amount: 1500, kind: 'dev', + description: '[67P/kredits-web] Reviewed stuff', + url: '', + confirmedAtBlock: 1, + }, { gasLimit: 350000 }]], + + ['Contribution', 'add', [{ + contributorId: 1, contributorIpfsHash: 'QmWKCYGr2rSf6abUPaTYqf98urvoZxGrb7dbspFZA6oyVF', + date: '2019-04-11', amount: 5000, kind: 'dev', + description: '[67P/kredits-contracts] Add tests', + url: '', + confirmedAtBlock: 1, + }, { gasLimit: 350000 }]], + + ['Contribution', 'add', [{ + contributorId: 1, contributorIpfsHash: 'QmWKCYGr2rSf6abUPaTYqf98urvoZxGrb7dbspFZA6oyVF', + date: '2019-04-11', amount: 1500, kind: 'dev', + description: '[67P/kredits-contracts] Introduce contribution token', + url: '', + }, { gasLimit: 350000 }]], + + ['Contribution', 'add', [{ + contributorId: 2, contributorIpfsHash: 'QmcHzEeAM26HV2zHTf5HnZrCtCtGdEccL5kUtDakAB7ozB', + date: '2019-04-11', amount: 1500, kind: 'design', + description: '[67P/kredits-web] Expense UI, first draft', + url: '', + }, { gasLimit: 350000 }]], + + ['Reimbursement', 'add', [{ amount: 346800, recipientId: 2, token: '0x2260fac5e5542a773aa44fbcfedf7c193bc2c599', expenses: [ + { title: 'Domain kosmos.social', description: 'Yearly registration fee for domain kosmos.social', amount: 69.00, currency: 'EUR', date: '2020-04-30' }, + ], confirmedAtBlock: 1 }, { gasLimit: 300000 }]], + + ['Reimbursement', 'add', [{ amount: 1116000, recipientId: 1, token: '0x2260fac5e5542a773aa44fbcfedf7c193bc2c599', expenses: [ { title: 'Server rent', description: 'Dedicated server: andromeda.kosmos.org, April 2020', amount: 61, currency: 'EUR', date: '2020-05-28' }, - { title: 'Server rent', description: 'Dedicated server: centaurus.kosmos.org, April 2020', amount: 32, currency: 'EUR', date: '2020-05-28' } - ]}, { gasLimit: 300000 }]], - ['Reimbursement', 'add', [{amount: 166800, recipientId: 2, token: '0x2260fac5e5542a773aa44fbcfedf7c193bc2c599', expenses: [ - { title: 'Domain kosmos.chat', description: 'Yearly registration fee for domain kosmos.chat', amount: 13.90, currency: 'EUR', date: '2020-05-30' } + { title: 'Server rent', description: 'Dedicated server: centaurus.kosmos.org, April 2020', amount: 32, currency: 'EUR', date: '2020-05-28' }, + ], confirmedAtBlock: 1 }, { gasLimit: 300000 }]], + + ['Reimbursement', 'add', [{ amount: 166800, recipientId: 2, token: '0x2260fac5e5542a773aa44fbcfedf7c193bc2c599', expenses: [ + { title: 'Domain kosmos.chat', description: 'Yearly registration fee for domain kosmos.chat', amount: 13.90, currency: 'EUR', date: '2020-05-30' }, ]}, { gasLimit: 300000 }]], ]; diff --git a/lib/contracts/contribution.js b/lib/contracts/contribution.js index f6648d9..4de447a 100644 --- a/lib/contracts/contribution.js +++ b/lib/contracts/contribution.js @@ -41,6 +41,8 @@ class Contribution extends Record { async add (contributionAttr, callOptions = {}) { const contribution = new ContributionSerializer(contributionAttr); + const confirmedAtBlock = contributionAttr.confirmedAtBlock || 0; + const vetoed = contributionAttr.vetoed || false; try { await contribution.validate(); } catch (error) { return Promise.reject(error); } @@ -56,9 +58,11 @@ class Contribution extends Record { ipfsHashAttr.hashDigest, ipfsHashAttr.hashFunction, ipfsHashAttr.hashSize, + confirmedAtBlock, + vetoed, ]; - return this.contract.add(...contribution, 0, false, callOptions); + return this.contract.add(...contribution, callOptions); }); } diff --git a/lib/contracts/reimbursement.js b/lib/contracts/reimbursement.js index 391ae3e..f8e1618 100644 --- a/lib/contracts/reimbursement.js +++ b/lib/contracts/reimbursement.js @@ -23,6 +23,8 @@ class Reimbursement extends Record { const amount = parseInt(attrs.amount); const token = attrs.token; const recipientId = attrs.recipientId; + const confirmedAtBlock = attrs.confirmedAtBlock || 0; + const vetoed = attrs.vetoed || false; const expenses = attrs.expenses.map((e) => new ExpenseSerializer(e)); let errorMessage; @@ -56,6 +58,8 @@ class Reimbursement extends Record { ipfsHashAttr.hashDigest, ipfsHashAttr.hashFunction, ipfsHashAttr.hashSize, + confirmedAtBlock, + vetoed, ]; return this.contract.add(...reimbursement, callOptions);