From a9093c1c404859c67957832cdb73c5071287d8f1 Mon Sep 17 00:00:00 2001 From: Manuel Wiedenmann Date: Fri, 12 Apr 2019 23:31:20 +0200 Subject: [PATCH] Fix linter errors # Conflicts: # lib/contracts/contribution.js # lib/contracts/contributor.js # lib/contracts/proposal.js # lib/kredits.js # lib/utils/pagination.js --- lib/contracts/acl.js | 12 +++++++---- lib/contracts/base.js | 10 ++++----- lib/contracts/contribution.js | 15 ++++++-------- lib/contracts/contributor.js | 12 +++++------ lib/contracts/index.js | 2 +- lib/contracts/kernel.js | 6 +++--- lib/contracts/proposal.js | 8 ++++---- lib/kredits.js | 36 ++++++++++++++++----------------- lib/serializers/contribution.js | 16 +++++++-------- lib/serializers/contributor.js | 10 ++++----- lib/utils/ipfs.js | 16 +++++++-------- lib/utils/preflight.js | 4 ++-- lib/utils/validator.js | 8 ++++---- 13 files changed, 77 insertions(+), 78 deletions(-) diff --git a/lib/contracts/acl.js b/lib/contracts/acl.js index 0b30500..d290b0b 100644 --- a/lib/contracts/acl.js +++ b/lib/contracts/acl.js @@ -2,11 +2,15 @@ const Base = require('./base'); const EthersUtils = require('ethers').utils; class Acl extends Base { - - hasPermission(fromAddress, contractAddress, roleID, params = null) { + hasPermission (fromAddress, contractAddress, roleID, params = null) { let roleHash = EthersUtils.keccak256(EthersUtils.toUtf8Bytes(roleID)); - console.log(roleHash) - return this.functions.hasPermission(fromAddress, contractAddress, roleHash, params); + + return this.functions.hasPermission( + fromAddress, + contractAddress, + roleHash, + params + ); } } diff --git a/lib/contracts/base.js b/lib/contracts/base.js index 2dc82c8..8d9d189 100644 --- a/lib/contracts/base.js +++ b/lib/contracts/base.js @@ -1,22 +1,22 @@ class Base { - constructor(contract) { + constructor (contract) { this.contract = contract; } - get functions() { + get functions () { return this.contract.functions; } - get ipfs() { + get ipfs () { if (!this._ipfsAPI) { throw new Error('IPFS API not configured; please set an ipfs instance'); } return this._ipfsAPI; } - set ipfs(ipfsAPI) { + set ipfs (ipfsAPI) { this._ipfsAPI = ipfsAPI; } - on(type, callback) { + on (type, callback) { return this.contract.on(type, callback); } } diff --git a/lib/contracts/contribution.js b/lib/contracts/contribution.js index e49591a..d2bc684 100644 --- a/lib/contracts/contribution.js +++ b/lib/contracts/contribution.js @@ -1,16 +1,14 @@ -const ethers = require('ethers'); - const ContributionSerializer = require('../serializers/contribution'); const Base = require('./base'); class Contribution extends Base { - all() { + all () { return this.functions.contributionsCount() .then(async (count) => { let contributions = []; for (let id = 1; id <= count; id++) { - const contribution = await this.getById(id) + const contribution = await this.getById(id); contributions.push(contribution); } @@ -18,20 +16,19 @@ class Contribution extends Base { }); } - getById(id) { + getById (id) { return this.functions.getContribution(id) .then(data => { return this.ipfs.catAndMerge(data, ContributionSerializer.deserialize); }); - } - getByContributorId(contributorId) { + getByContributorId (contributorId) { return this.functions.getContributorAddressById(contributorId) .then(address => this.getByContributorAddress(address)); } - getByContributorAddress(address) { + getByContributorAddress (address) { return this.functions.balanceOf(address) .then(async (balance) => { const count = balance.toNumber(); @@ -47,7 +44,7 @@ class Contribution extends Base { }); } - async addContribution(contributionAttr, callOptions = {}) { + async addContribution (contributionAttr, callOptions = {}) { const contribution = new ContributionSerializer(contributionAttr); try { await contribution.validate(); } diff --git a/lib/contracts/contributor.js b/lib/contracts/contributor.js index d207773..39630b8 100644 --- a/lib/contracts/contributor.js +++ b/lib/contracts/contributor.js @@ -4,7 +4,7 @@ const ContributorSerializer = require('../serializers/contributor'); const Base = require('./base'); class Contributor extends Base { - all() { + all () { return this.functions.contributorsCount() .then(count => { let contributors = []; @@ -17,22 +17,22 @@ class Contributor extends Base { }); } - getById(id) { + getById (id) { return this.functions.getContributorById(id) .then((data) => { return this.ipfs.catAndMerge(data, ContributorSerializer.deserialize); }); } - filterByAccount(search) { + filterByAccount (search) { return this._byAccount(search, 'filter'); } - findByAccount(search) { + findByAccount (search) { return this._byAccount(search, 'find'); } - _byAccount(search, method = 'filter') { + _byAccount (search, method = 'filter') { return this.all().then((contributors) => { const searchEntries = Object.entries(search); @@ -48,7 +48,7 @@ class Contributor extends Base { }); } - add(contributorAttr, callOptions = {}) { + add (contributorAttr, callOptions = {}) { let json = ContributorSerializer.serialize(contributorAttr); // TODO: validate against schema diff --git a/lib/contracts/index.js b/lib/contracts/index.js index d28e44d..0ca1176 100644 --- a/lib/contracts/index.js +++ b/lib/contracts/index.js @@ -4,5 +4,5 @@ module.exports = { Proposal: require('./proposal'), Token: require('./token'), Kernel: require('./kernel'), - Acl: require('./acl') + Acl: require('./acl'), }; diff --git a/lib/contracts/kernel.js b/lib/contracts/kernel.js index a5cb473..a9e875a 100644 --- a/lib/contracts/kernel.js +++ b/lib/contracts/kernel.js @@ -4,19 +4,19 @@ const Base = require('./base'); const KERNEL_APP_ADDR_NAMESPACE = '0xd6f028ca0e8edb4a8c9757ca4fdccab25fa1e0317da1188108f7d2dee14902fb'; class Kernel extends Base { - constructor(contract) { + constructor (contract) { super(contract); this.apm = 'aragonpm.eth'; // can be overwritten if needed } - getApp(appName) { + getApp (appName) { if (appName === 'Acl') { return this.functions.acl(); } return this.functions.getApp(KERNEL_APP_ADDR_NAMESPACE, this.appNamehash(appName)); } - appNamehash(appName) { + appNamehash (appName) { return namehash(`kredits-${appName.toLowerCase()}.${this.apm}`); } } diff --git a/lib/contracts/proposal.js b/lib/contracts/proposal.js index 3caccba..564f6c0 100644 --- a/lib/contracts/proposal.js +++ b/lib/contracts/proposal.js @@ -4,7 +4,7 @@ const ContributionSerializer = require('../serializers/contribution'); const Base = require('./base'); class Proposal extends Base { - all() { + all () { return this.functions.proposalsCount() .then(count => { let proposals = []; @@ -17,14 +17,14 @@ class Proposal extends Base { }); } - getById(id) { + getById (id) { return this.functions.getProposal(id) .then(data => { return this.ipfs.catAndMerge(data, ContributionSerializer.deserialize); }); } - async addProposal(proposalAttr, callOptions = {}) { + async addProposal (proposalAttr, callOptions = {}) { const contribution = new ContributionSerializer(proposalAttr); try { await contribution.validate(); } @@ -48,4 +48,4 @@ class Proposal extends Base { } } -module.exports = Proposal +module.exports = Proposal; diff --git a/lib/kredits.js b/lib/kredits.js index ef47795..e33aec8 100644 --- a/lib/kredits.js +++ b/lib/kredits.js @@ -9,29 +9,29 @@ const ABIS = { Token: require('./abis/Token.json'), Proposal: require('./abis/Proposal.json'), Kernel: require('./abis/Kernel.json'), - Acl: require('./abis/ACL.json') + Acl: require('./abis/ACL.json'), }; const APP_CONTRACTS = [ 'Contributor', 'Contribution', 'Token', 'Proposal', - 'Acl' + 'Acl', ]; const DaoAddresses = require('./addresses/dao.json'); const Contracts = require('./contracts'); -const IPFS = require('./utils/ipfs') +const IPFS = require('./utils/ipfs'); // Helpers -function capitalize(word) { +function capitalize (word) { let [first, ...rest] = word; return `${first.toUpperCase()}${rest.join('')}`; } class Kredits { - constructor(provider, signer, options = {}) { + constructor (provider, signer, options = {}) { let { addresses, abis, ipfsConfig } = options; this.provider = provider; @@ -43,7 +43,7 @@ class Kredits { this.contracts = {}; } - init(names) { + init (names) { let contractsToLoad = names || APP_CONTRACTS; return this.provider.getNetwork().then(network => { this.addresses['Kernel'] = this.addresses['Kernel'] || DaoAddresses[network.chainId.toString()]; @@ -57,16 +57,16 @@ class Kredits { ); }); }); - return RSVP.all(addressPromises).then(() => { return this }); + return RSVP.all(addressPromises).then(() => { return this; }); }); } - static setup(provider, signer, ipfsConfig = null) { + static setup (provider, signer, ipfsConfig = null) { console.log('Kredits.setup() is deprecated use new Kredits().init() instead'); return new Kredits(provider, signer, { ipfsConfig: ipfsConfig }).init(); } - get Kernel() { + get Kernel () { let k = this.contractFor('Kernel'); // in case we want to use a special apm (e.g. development vs. production) if (this.options.apm) { @@ -75,37 +75,37 @@ class Kredits { return k; } - get Contributor() { + get Contributor () { return this.contractFor('Contributor'); } - get Contributors() { + get Contributors () { console.log('Contributors is deprecated use Contributor instead'); return this.Contributor; } - get Proposal() { + get Proposal () { return this.contractFor('Proposal'); } - get Operator() { + get Operator () { return this.Proposal; } - get Token() { + get Token () { return this.contractFor('Token'); } - get Contribution() { + get Contribution () { return this.contractFor('Contribution'); } - get Acl() { + get Acl () { return this.contractFor('Acl'); } // Should be private - contractFor(name) { + contractFor (name) { if (this.contracts[name]) { return this.contracts[name]; } @@ -125,7 +125,7 @@ class Kredits { return this.contracts[name]; } - preflightChecks() { + preflightChecks () { return new Preflight(this).check(); } } diff --git a/lib/serializers/contribution.js b/lib/serializers/contribution.js index 8ed8dee..1bd8b84 100644 --- a/lib/serializers/contribution.js +++ b/lib/serializers/contribution.js @@ -9,7 +9,7 @@ const validator = require('../utils/validator'); */ class Contribution { - constructor(attrs) { + constructor (attrs) { Object.keys(attrs).forEach(a => this[a] = attrs[a]); } @@ -26,24 +26,24 @@ class Contribution { kind, description, url, - details + details, } = this; let data = { - "@context": "https://schema.kosmos.org", - "@type": "Contribution", - "contributor": { - "ipfs": contributorIpfsHash + '@context': 'https://schema.kosmos.org', + '@type': 'Contribution', + 'contributor': { + 'ipfs': contributorIpfsHash, }, date, time, kind, description, - "details": details || {} + 'details': details || {}, }; if (url) { - data["url"] = url; + data['url'] = url; } // Write it pretty to ipfs diff --git a/lib/serializers/contributor.js b/lib/serializers/contributor.js index d426370..da87160 100644 --- a/lib/serializers/contributor.js +++ b/lib/serializers/contributor.js @@ -12,7 +12,7 @@ class Contributor { * @method * @public */ - static deserialize(serialized) { + static deserialize (serialized) { let { name, kind, @@ -49,7 +49,7 @@ class Contributor { * @method * @public */ - static serialize(deserialized) { + static serialize (deserialized) { let { name, kind, @@ -64,7 +64,7 @@ class Contributor { "@type": "Contributor", kind, name, - "accounts": [] + "accounts": [], }; if (url) { @@ -76,7 +76,7 @@ class Contributor { "site": "github.com", "uid": github_uid, "username": github_username, - "url": `https://github.com/${github_username}` + "url": `https://github.com/${github_username}`, }); } @@ -84,7 +84,7 @@ class Contributor { data.accounts.push({ "site": "wiki.kosmos.org", "username": wiki_username, - "url": `https://wiki.kosmos.org/User:${wiki_username}` + "url": `https://wiki.kosmos.org/User:${wiki_username}`, }); } diff --git a/lib/utils/ipfs.js b/lib/utils/ipfs.js index 9b75462..105379f 100644 --- a/lib/utils/ipfs.js +++ b/lib/utils/ipfs.js @@ -2,8 +2,7 @@ const ipfsClient = require('ipfs-http-client'); const multihashes = require('multihashes'); class IPFS { - - constructor(config) { + constructor (config) { if (!config) { config = { host: 'localhost', port: '5001', protocol: 'http' }; } @@ -11,7 +10,7 @@ class IPFS { this._config = config; } - catAndMerge(data, deserialize) { + catAndMerge (data, deserialize) { // if no hash details are found simply return the data; nothing to merge if (!data.hashSize || data.hashSize === 0) { return data; @@ -26,7 +25,7 @@ class IPFS { }); } - add(data) { + add (data) { return this._ipfsAPI .add(ipfsClient.Buffer.from(data)) .then((res) => { @@ -34,7 +33,7 @@ class IPFS { }); } - cat(hashData) { + cat (hashData) { let ipfsHash = hashData; // default - if it is a string if (hashData.hasOwnProperty('hashSize')) { ipfsHash = this.encodeHash(hashData); @@ -42,21 +41,20 @@ class IPFS { return this._ipfsAPI.cat(ipfsHash); } - decodeHash(ipfsHash) { + decodeHash (ipfsHash) { let multihash = multihashes.decode(multihashes.fromB58String(ipfsHash)); return { hashDigest: '0x' + multihashes.toHexString(multihash.digest), hashSize: multihash.length, hashFunction: multihash.code, - ipfsHash: ipfsHash + ipfsHash: ipfsHash, }; } - encodeHash(hashData) { + encodeHash (hashData) { let digest = ipfsClient.Buffer.from(hashData.hashDigest.slice(2), 'hex'); return multihashes.encode(digest, hashData.hashFunction, hashData.hashSize); } - } module.exports = IPFS; diff --git a/lib/utils/preflight.js b/lib/utils/preflight.js index aef3b64..9e298ba 100644 --- a/lib/utils/preflight.js +++ b/lib/utils/preflight.js @@ -1,9 +1,9 @@ class Preflight { - constructor(kredits) { + constructor (kredits) { this.kredits = kredits; } - check() { + check () { return this.kredits.ipfs._ipfsAPI.id() .catch((error) => { throw new Error(`IPFS node not available; config: ${JSON.stringify(this.kredits.ipfs.config)} - ${error.message}`); diff --git a/lib/utils/validator.js b/lib/utils/validator.js index 1dde313..5f4d987 100644 --- a/lib/utils/validator.js +++ b/lib/utils/validator.js @@ -4,12 +4,12 @@ const validator = tv4.freshApi(); validator.addFormat({ 'date': function(value) { const dateRegexp = /^[0-9]{4,}-[0-9]{2}-[0-9]{2}$/; - return dateRegexp.test(value) ? null : "A valid ISO 8601 full-date string is expected"; + return dateRegexp.test(value) ? null : 'A valid ISO 8601 full-date string is expected'; }, 'time': function(value) { const timeRegexp = /^([01][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9]|60)(\.[0-9]+)?(([Zz])|([\+|\-]([01][0-9]|2[0-3]):[0-5][0-9]))$/; - return timeRegexp.test(value) ? null : "A valid ISO 8601 full-time string is expected"; - } -}) + return timeRegexp.test(value) ? null : 'A valid ISO 8601 full-time string is expected'; + }, +}); module.exports = validator;