Skip to content

Commit a6d8388

Browse files
committed
1. move all source code to 'src'
2. use protobuf js file instead of .proto directly 3. use es5 syntas when publish 4. upgrade version to 0.70.16
1 parent 71067a8 commit a6d8388

25 files changed

Lines changed: 630 additions & 98 deletions

.babelrc

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"presets": ["es2015", "stage-1"],
3+
"plugins": ["syntax-flow", "transform-flow-strip-types"]
4+
}

package.json

Lines changed: 30 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,16 @@
11
{
22
"name": "chainsql",
3-
"version": "0.70.14",
3+
"version": "0.70.16",
44
"description": "An database driver for chainsql ",
5-
"main": "src/index.js",
6-
"scripts": {
7-
"test": "mocha"
5+
"main": "dist/npm/",
6+
"directories": {
7+
"test": "test"
88
},
9+
"files": [
10+
"dist/npm/*",
11+
"bin/*",
12+
"test/*"
13+
],
914
"dependencies": {
1015
"bignumber.js": "^2.4.0",
1116
"chainsql-keypairs": "^0.11.1",
@@ -20,8 +25,27 @@
2025
"web3-utils": "1.0.0-beta.36"
2126
},
2227
"devDependencies": {
23-
"mocha": "~2.3.3",
24-
"chai": "^4.2.0"
28+
"assert-diff": "^1.0.1",
29+
"babel-cli": "^6.4.0",
30+
"babel-core": "^6.4.0",
31+
"babel-eslint": "^6.0.4",
32+
"babel-loader": "^6.2.1",
33+
"babel-plugin-syntax-flow": "^6.3.13",
34+
"babel-plugin-transform-flow-strip-types": "^6.4.0",
35+
"babel-preset-es2015": "^6.3.13",
36+
"babel-preset-stage-1": "^6.3.13",
37+
"babel-register": "^6.3.13"
38+
},
39+
"scripts": {
40+
"build": "gulp",
41+
"doctoc": "doctoc docs/index.md --title '# ChainsqlAPI Reference' --github --maxlevel 2",
42+
"docgen": "node --harmony scripts/build_docs.js",
43+
"clean": "rm -rf dist/npm && rm -rf build/flow",
44+
"typecheck": "babel --optional runtime --blacklist flow -d build/flow/ src/ && flow check",
45+
"compile": "babel -D --optional runtime -d dist/npm/ src/",
46+
"watch": "babel -w -D --optional runtime -d dist/npm/ src/",
47+
"compile-with-source-maps": "babel -D --optional runtime -s -t -d dist/npm/ src/",
48+
"prepublish": "npm run clean && npm run compile"
2549
},
2650
"repository": {
2751
"type": "git",

src/eventManager.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
'use strict';
22
const EventEmitter = require('events');
3-
const util = require('../lib/util');
4-
const crypto = require('../lib/crypto');
3+
const util = require('./lib/util');
4+
const crypto = require('./lib/crypto');
55

66
function EventManager(chainsql) {
77
this.connect = chainsql.connect.api.connection;

src/index.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,26 @@
11
'use strict'
2-
const crypto = require('../lib/crypto');
2+
const crypto = require('./lib/crypto');
33
const keypairs = require('chainsql-keypairs');
44
const EventManager = require('./eventManager')
55
const _ = require('lodash');
66

77
const RippleAPI = require('chainsql-lib').ChainsqlLibAPI;
88
const Submit = require('./submit');
99
const Ripple = require('./ripple');
10-
const chainsqlError = require('../lib/error');
10+
const chainsqlError = require('./lib/error');
1111

1212
_.assign(RippleAPI.prototype, {
1313
prepareTable: require('./tablePayment'),
1414
prepareTx: require('./txPayment')
1515
})
1616
const addressCodec = require('chainsql-address-codec');
17-
const validate = require('../lib/validate')
17+
const validate = require('./lib/validate')
1818
const Connection = require('./connect');
1919
const Table = require('./table');
2020
const Contract = require('./smartContract');
21-
const util = require('../lib/util');
21+
const util = require('./lib/util');
2222
const { utils } = require('elliptic');
23-
const opType = require('../lib/config').opType;
23+
const opType = require('./lib/config').opType;
2424
const convertStringToHex = util.convertStringToHex;
2525
const getCryptAlgTypeFromAccout = util.getCryptAlgTypeFromAccout;
2626

File renamed without changes.

lib/crypto.js renamed to src/lib/crypto.js

Lines changed: 43 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ var ProtoBuf = require("protobufjs")
1515
var zlib = require('zlib');
1616

1717
const _ = require('lodash');
18+
const multiProto = require('../proto/MultiEncrypt')
1819

1920
var AESKeyLength = 32;
2021
var AESBlockLength = 16;
@@ -357,7 +358,7 @@ var encryptText = function(plainText,listPublic){
357358
}
358359
//publickey -hash
359360
var pubKey = Secp256k1.keyFromPublic(publicKey, 'hex');
360-
var pubHash = quarterSha512(new Buffer(publicKey, 'hex'));
361+
var pubHash = quarterSha512(Buffer.from(publicKey, 'hex'));
361362
listPubHash.push(pubHash);
362363

363364
//encrypt
@@ -366,30 +367,26 @@ var encryptText = function(plainText,listPublic){
366367
}
367368

368369
return new Promise(function(resolve,reject){
369-
ProtoBuf.load("proto/MultiEncrypt.proto",function(err,root){
370-
if (err) throw err;
371-
var MultiEncrypt = root.lookup("MultiEncrypt");
372-
//create a new message
373-
var data = {};
374-
data.publicOther =Buffer.from(ephPublicKey,'hex');
375-
data.cipher = Buffer.from(aesCipher,'hex');
376-
data.hashTokenPair = [];
377-
for(var i=0; i<listPubHash.length; i++){
378-
var tokenPair = {
379-
publicHash : listPubHash[i],
380-
token : listPassCipher[i]
381-
}
382-
data.hashTokenPair.push(tokenPair);
370+
//create a new message
371+
var data = {};
372+
data.publicOther =Buffer.from(ephPublicKey,'hex');
373+
data.cipher = Buffer.from(aesCipher,'hex');
374+
data.hashTokenPair = [];
375+
for(var i=0; i<listPubHash.length; i++){
376+
var tokenPair = {
377+
publicHash : listPubHash[i],
378+
token : listPassCipher[i]
383379
}
384-
var message = MultiEncrypt.create(data);
385-
var buffer = MultiEncrypt.encode(message).finish();
386-
387-
zlibCompressText(buffer).then(function(res){
388-
// if(err) reject(err);
389-
resolve(res.toString('hex'));
390-
}).catch(function(err){
391-
reject(err);
392-
})
380+
data.hashTokenPair.push(tokenPair);
381+
}
382+
var message = multiProto.MultiEncrypt.create(data);
383+
var buffer = multiProto.MultiEncrypt.encode(message).finish();
384+
385+
zlibCompressText(buffer).then(function(res){
386+
// if(err) reject(err);
387+
resolve(res.toString('hex'));
388+
}).catch(function(err){
389+
reject(err);
393390
})
394391
})
395392
}
@@ -399,33 +396,29 @@ var decryptText = function(cipherText,secret){
399396
//Zlib-decompress
400397
var cipherBytes = Buffer.from(cipherText,'hex');
401398
zlibDeCompressText(cipherBytes).then(function(res){
402-
ProtoBuf.load("proto/MultiEncrypt.proto",function(err,root){
403-
if (err) throw err;
404-
var MultiEncrypt = root.lookup("MultiEncrypt");
405-
var message = MultiEncrypt.decode(res);
406-
var keypair = keypairs.deriveKeypair(secret);
407-
var privateKey = keypair.privateKey;
408-
var sPubHashSelf = quarterSha512(new Buffer(keypair.publicKey,'hex'));
409-
410-
var password;
411-
var pubOther = message.publicOther;
412-
var listPubHashToken = message.hashTokenPair;
413-
for(var i=0; i<listPubHashToken.length; i++){
414-
var hashTokenPair = listPubHashToken[i];
415-
if(_.isEqual(hashTokenPair.publicHash, Buffer.from(sPubHashSelf))){
416-
var ephPrivKey = Secp256k1.keyFromPrivate(privateKey, 'hex');
417-
var pubKey = Secp256k1.keyFromPublic(pubOther);
418-
password = simpleDecrypt(hashTokenPair.token,ephPrivKey,pubKey);
419-
break;
420-
}
421-
}
422-
if(password){
423-
var plain = aesDecrypt(password,message.cipher);
424-
resolve(plain);
425-
}else{
426-
reject('error when get aesKey')
399+
var message = multiProto.MultiEncrypt.decode(res);
400+
var keypair = keypairs.deriveKeypair(secret);
401+
var privateKey = keypair.privateKey;
402+
var sPubHashSelf = quarterSha512(Buffer.from(keypair.publicKey,'hex'));
403+
404+
var password;
405+
var pubOther = message.publicOther;
406+
var listPubHashToken = message.hashTokenPair;
407+
for(var i=0; i<listPubHashToken.length; i++){
408+
var hashTokenPair = listPubHashToken[i];
409+
if(_.isEqual(hashTokenPair.publicHash, Buffer.from(sPubHashSelf))){
410+
var ephPrivKey = Secp256k1.keyFromPrivate(privateKey, 'hex');
411+
var pubKey = Secp256k1.keyFromPublic(pubOther);
412+
password = simpleDecrypt(hashTokenPair.token,ephPrivKey,pubKey);
413+
break;
427414
}
428-
})
415+
}
416+
if(password){
417+
var plain = aesDecrypt(password,message.cipher);
418+
resolve(plain);
419+
}else{
420+
reject('error when get aesKey')
421+
}
429422
}).catch(function(err){
430423
reject(err);
431424
})
File renamed without changes.
File renamed without changes.
File renamed without changes.

0 commit comments

Comments
 (0)