Merge branch 'master' into fix/ipfs-config

# Conflicts:
#	lib/utils/ipfs.js
#	lib/utils/preflight.js
This commit is contained in:
2019-04-24 20:33:15 +02:00
39 changed files with 1943 additions and 203 deletions

5
lib/utils/deprecate.js Normal file
View File

@@ -0,0 +1,5 @@
/*eslint no-console: ["error", { allow: ["warn"] }] */
module.exports = function deprecate (msg) {
console.warn(msg);
};

View File

@@ -0,0 +1,10 @@
const ethersUtils = require('ethers').utils;
module.exports = function(value, options = {}) {
let etherValue = ethersUtils.formatEther(value);
if (options.asFloat) {
return parseFloat(etherValue);
} else {
return parseInt(etherValue);
}
};

View File

@@ -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,15 +10,15 @@ class IPFS {
this._config = config;
}
get config() {
get config () {
return this._config;
}
get peerId() {
get peerId () {
return this._ipfsAPI.id();
}
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;
@@ -34,7 +33,7 @@ class IPFS {
});
}
add(data) {
add (data) {
return this._ipfsAPI
.add(ipfsClient.Buffer.from(data))
.then((res) => {
@@ -42,7 +41,7 @@ class IPFS {
});
}
cat(hashData) {
cat (hashData) {
let ipfsHash = hashData; // default - if it is a string
if (hashData.hasOwnProperty('hashSize')) {
ipfsHash = this.encodeHash(hashData);
@@ -50,21 +49,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;

View File

@@ -1,4 +1,4 @@
function pageNumber(number, size, recordCount) {
function pageNumber (number, size, recordCount) {
let numberOfPages = Math.ceil(recordCount / size);
number = parseInt(number) || 1;
@@ -10,7 +10,7 @@ function pageNumber(number, size, recordCount) {
return number;
}
function buildIds(order, number, size, recordCount) {
function buildIds (order, number, size, recordCount) {
let offset = size * (number - 1);
let start;
@@ -34,7 +34,7 @@ function buildIds(order, number, size, recordCount) {
return Array.from({ length: size }, mapFunction);
}
module.exports = function paged(recordCount, options = {}) {
module.exports = function paged (recordCount, options = {}) {
let { order, page } = options;
order = order || 'desc';
page = page || {};

View File

@@ -1,9 +1,9 @@
class Preflight {
constructor(kredits) {
constructor (kredits) {
this.kredits = kredits;
}
check() {
check () {
return this.kredits.ipfs.peerId()
.catch((error) => {
const ipfsConfig = JSON.stringify(this.kredits.ipfs.config);

View File

@@ -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";
}
})
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';
},
});
module.exports = validator;