jcc_wallet 1.3.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2,6 +2,7 @@ declare enum BIP44Chain {
2
2
  BITCOIN = 2147483648,
3
3
  BSC = 2147492654,
4
4
  EOS = 2147483842,
5
+ TRON = 2147483843,
5
6
  ETC = 2147483709,
6
7
  ETH = 2147483708,
7
8
  HECO = 2147484658,
@@ -11,6 +11,7 @@ var BIP44Chain;
11
11
  BIP44Chain[BIP44Chain["BITCOIN"] = 2147483648] = "BITCOIN";
12
12
  BIP44Chain[BIP44Chain["BSC"] = 2147492654] = "BSC";
13
13
  BIP44Chain[BIP44Chain["EOS"] = 2147483842] = "EOS";
14
+ BIP44Chain[BIP44Chain["TRON"] = 2147483843] = "TRON";
14
15
  BIP44Chain[BIP44Chain["ETC"] = 2147483709] = "ETC";
15
16
  BIP44Chain[BIP44Chain["ETH"] = 2147483708] = "ETH";
16
17
  BIP44Chain[BIP44Chain["HECO"] = 2147484658] = "HECO";
@@ -38,6 +39,7 @@ var BIP44ChainMap = new Map([
38
39
  [BIP44Chain.BITCOIN, "bitcoin"],
39
40
  [BIP44Chain.BSC, "bsc"],
40
41
  [BIP44Chain.EOS, "eos"],
42
+ [BIP44Chain.TRON, "tron"],
41
43
  [BIP44Chain.ETC, "etc"],
42
44
  [BIP44Chain.ETH, "ethereum"],
43
45
  [BIP44Chain.HECO, "heco"],
@@ -1 +1 @@
1
- {"version":3,"file":"constant.js","sourceRoot":"","sources":["../../src/hd/constant.ts"],"names":[],"mappings":";;;;;;AAAA,oEAAwC;AAExC,cAAc;AACd,IAAK,UAiBJ;AAjBD,WAAK,UAAU;IACb,0DAAoB,CAAA;IACpB,kDAAgB,CAAA;IAChB,kDAAgB,CAAA;IAChB,kDAAgB,CAAA;IAChB,kDAAgB,CAAA;IAChB,oDAAiB,CAAA;IACjB,oDAAiB,CAAA;IACjB,0DAAoB,CAAA;IACpB,wDAAmB,CAAA;IACnB,oDAAiB,CAAA;IACjB,oDAAiB,CAAA;IAEjB,wEAAwE;IACxE,wDAAmB,CAAA;IACnB,wDAAmB,CAAA;IACnB,wDAAmB,CAAA;AACrB,CAAC,EAjBI,UAAU,0BAAV,UAAU,QAiBd;AAED;;;;;GAKG;AACH,IAAM,aAAa,GAAG,UAAC,KAAa;IAClC,OAAO,yBAAS,CAAC,MAAM,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,EAAd,CAAc,CAAC,CAAC;AACjD,CAAC,CAAC;AAmBkC,sCAAa;AAjBjD,IAAM,aAAa,GAAG,IAAI,GAAG,CAAC;IAC5B,CAAC,UAAU,CAAC,OAAO,EAAE,SAAS,CAAC;IAC/B,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC;IACvB,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC;IACvB,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC;IACvB,CAAC,UAAU,CAAC,GAAG,EAAE,UAAU,CAAC;IAC5B,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC;IACzB,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC;IACzB,CAAC,UAAU,CAAC,OAAO,EAAE,SAAS,CAAC;IAC/B,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC;IAC7B,CAAC,UAAU,CAAC,IAAI,EAAE,SAAS,CAAC;IAC5B,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC;IACzB,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC;IAC7B,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC;IAC7B,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC;CAC9B,CAAC,CAAC;AAEkB,sCAAa"}
1
+ {"version":3,"file":"constant.js","sourceRoot":"","sources":["../../src/hd/constant.ts"],"names":[],"mappings":";;;;;;AAAA,oEAAwC;AAExC,cAAc;AACd,IAAK,UAkBJ;AAlBD,WAAK,UAAU;IACb,0DAAoB,CAAA;IACpB,kDAAgB,CAAA;IAChB,kDAAgB,CAAA;IAChB,oDAAiB,CAAA;IACjB,kDAAgB,CAAA;IAChB,kDAAgB,CAAA;IAChB,oDAAiB,CAAA;IACjB,oDAAiB,CAAA;IACjB,0DAAoB,CAAA;IACpB,wDAAmB,CAAA;IACnB,oDAAiB,CAAA;IACjB,oDAAiB,CAAA;IAEjB,wEAAwE;IACxE,wDAAmB,CAAA;IACnB,wDAAmB,CAAA;IACnB,wDAAmB,CAAA;AACrB,CAAC,EAlBI,UAAU,0BAAV,UAAU,QAkBd;AAED;;;;;GAKG;AACH,IAAM,aAAa,GAAG,UAAC,KAAa;IAClC,OAAO,yBAAS,CAAC,MAAM,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,EAAd,CAAc,CAAC,CAAC;AACjD,CAAC,CAAC;AAoBkC,sCAAa;AAlBjD,IAAM,aAAa,GAAG,IAAI,GAAG,CAAC;IAC5B,CAAC,UAAU,CAAC,OAAO,EAAE,SAAS,CAAC;IAC/B,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC;IACvB,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC;IACvB,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC;IACzB,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC;IACvB,CAAC,UAAU,CAAC,GAAG,EAAE,UAAU,CAAC;IAC5B,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC;IACzB,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC;IACzB,CAAC,UAAU,CAAC,OAAO,EAAE,SAAS,CAAC;IAC/B,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC;IAC7B,CAAC,UAAU,CAAC,IAAI,EAAE,SAAS,CAAC;IAC5B,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC;IACzB,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC;IAC7B,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC;IAC7B,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC;CAC9B,CAAC,CAAC;AAEkB,sCAAa"}
package/lib/hd/plugins.js CHANGED
@@ -5,6 +5,7 @@ var ethereum_plugin_1 = require("./ethereum.plugin");
5
5
  var ethereum_plugin_2 = require("./ethereum.plugin");
6
6
  var ethereum_plugin_3 = require("./ethereum.plugin");
7
7
  var ethereum_plugin_4 = require("./ethereum.plugin");
8
+ var tron_plugin_1 = require("./tron.plugin");
8
9
  // import { plugin as swtcPlugin } from "./swtc.plugin";
9
10
  // import { plugin as bvcadtPlugin } from "./swtc.plugin";
10
11
  // import { plugin as callPlugin } from "./swtc.plugin";
@@ -17,6 +18,7 @@ var pluginMap = {
17
18
  bsc: ethereum_plugin_2.plugin,
18
19
  heco: ethereum_plugin_3.plugin,
19
20
  polygon: ethereum_plugin_4.plugin,
21
+ tron: tron_plugin_1.plugin,
20
22
  bvcadt: (0, swtc_plugin_1.XWallet)("bvcadt"),
21
23
  call: (0, swtc_plugin_1.XWallet)("call"),
22
24
  ripple: (0, swtc_plugin_1.XWallet)("ripple"),
@@ -1 +1 @@
1
- {"version":3,"file":"plugins.js","sourceRoot":"","sources":["../../src/hd/plugins.ts"],"names":[],"mappings":";;;AAAA,qDAA6D;AAC7D,qDAAwD;AACxD,qDAAyD;AACzD,qDAA4D;AAC5D,wDAAwD;AACxD,0DAA0D;AAC1D,wDAAwD;AACxD,4DAA4D;AAC5D,0DAA0D;AAC1D,0DAA0D;AAC1D,6CAAwC;AAMxC,IAAM,SAAS,GAAe;IAC5B,QAAQ,EAAE,wBAAc;IACxB,GAAG,EAAE,wBAAS;IACd,IAAI,EAAE,wBAAU;IAChB,OAAO,EAAE,wBAAa;IACtB,MAAM,EAAE,IAAA,qBAAO,EAAC,QAAQ,CAAC;IACzB,IAAI,EAAE,IAAA,qBAAO,EAAC,MAAM,CAAC;IACrB,MAAM,EAAE,IAAA,qBAAO,EAAC,QAAQ,CAAC;IACzB,MAAM,EAAE,IAAA,qBAAO,EAAC,QAAQ,CAAC;IACzB,MAAM,EAAE,IAAA,qBAAO,EAAC,QAAQ,CAAC;IACzB,OAAO,EAAE,IAAA,qBAAO,EAAC,SAAS,CAAC;CAC5B,CAAC;AAEF,SAAgB,eAAe,CAAsB,IAAY;IAC/D,OAAO,SAAS,CAAC,IAAI,CAAM,CAAC;AAC9B,CAAC;AAFD,0CAEC"}
1
+ {"version":3,"file":"plugins.js","sourceRoot":"","sources":["../../src/hd/plugins.ts"],"names":[],"mappings":";;;AAAA,qDAA6D;AAC7D,qDAAwD;AACxD,qDAAyD;AACzD,qDAA4D;AAC5D,6CAAqD;AACrD,wDAAwD;AACxD,0DAA0D;AAC1D,wDAAwD;AACxD,4DAA4D;AAC5D,0DAA0D;AAC1D,0DAA0D;AAC1D,6CAAwC;AAMxC,IAAM,SAAS,GAAe;IAC5B,QAAQ,EAAE,wBAAc;IACxB,GAAG,EAAE,wBAAS;IACd,IAAI,EAAE,wBAAU;IAChB,OAAO,EAAE,wBAAa;IACtB,IAAI,EAAE,oBAAU;IAChB,MAAM,EAAE,IAAA,qBAAO,EAAC,QAAQ,CAAC;IACzB,IAAI,EAAE,IAAA,qBAAO,EAAC,MAAM,CAAC;IACrB,MAAM,EAAE,IAAA,qBAAO,EAAC,QAAQ,CAAC;IACzB,MAAM,EAAE,IAAA,qBAAO,EAAC,QAAQ,CAAC;IACzB,MAAM,EAAE,IAAA,qBAAO,EAAC,QAAQ,CAAC;IACzB,OAAO,EAAE,IAAA,qBAAO,EAAC,SAAS,CAAC;CAC5B,CAAC;AAEF,SAAgB,eAAe,CAAsB,IAAY;IAC/D,OAAO,SAAS,CAAC,IAAI,CAAM,CAAC;AAC9B,CAAC;AAFD,0CAEC"}
@@ -0,0 +1,4 @@
1
+ export interface ITronPlugin extends IHDPlugin {
2
+ checkPrivateKey(privateKey: string): string;
3
+ }
4
+ export declare const plugin: ITronPlugin;
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.plugin = void 0;
4
+ var TronWeb = require("tronweb");
5
+ exports.plugin = {
6
+ checkPrivateKey: function (privateKey) {
7
+ // check and cut swtc keypair lib add prefix 00
8
+ return privateKey.length === 66 ? privateKey.substring(2) : privateKey;
9
+ },
10
+ address: function (key) {
11
+ if (key.privateKey) {
12
+ var privateKey = this.checkPrivateKey(key.privateKey);
13
+ var wallet = TronWeb.address.fromPrivateKey(privateKey);
14
+ return wallet;
15
+ }
16
+ if (key.publicKey) {
17
+ // TODO: length of ethereum publick key of keypaire is 128, but swtc lib keypair is 64
18
+ // so, if you want get address from public key, get it from private first
19
+ var pubBytes = TronWeb.utils.code.hexStr2byteArray(key.publicKey);
20
+ var comCddressBytes = TronWeb.utils.crypto.computeAddress(pubBytes);
21
+ return TronWeb.utils.crypto.getBase58CheckAddress(comCddressBytes);
22
+ }
23
+ return null;
24
+ },
25
+ isValidAddress: function (address) {
26
+ return TronWeb.utils.crypto.isAddressValid(address);
27
+ },
28
+ isValidSecret: function (secret) {
29
+ try {
30
+ var comPriKeyBytes = TronWeb.utils.code.hexStr2byteArray(this.checkPrivateKey(secret));
31
+ var pubBytes = TronWeb.utils.crypto.getPubKeyFromPriKey(comPriKeyBytes);
32
+ var comCddressBytes = TronWeb.utils.crypto.computeAddress(pubBytes);
33
+ var address = TronWeb.utils.crypto.getBase58CheckAddress(comCddressBytes);
34
+ return this.isValidAddress(address);
35
+ }
36
+ catch (error) {
37
+ return false;
38
+ }
39
+ },
40
+ hash: function (message) {
41
+ return TronWeb.utils.message.hashMessage(message);
42
+ },
43
+ /**
44
+ *
45
+ * @param message message content, let message is "\x19Ethereum Signed Message:\n" + message.length + message, match web3.accounts.sign function
46
+ * @param privateKey private key
47
+ * @returns signature string
48
+ */
49
+ sign: function (message, privateKey) {
50
+ var key = this.checkPrivateKey(privateKey).toLowerCase();
51
+ return TronWeb.Trx.signMessageV2(message, key);
52
+ },
53
+ verify: function (message, signature, address) {
54
+ return this.recover(message, signature) === address;
55
+ },
56
+ recover: function (message, signature) {
57
+ return TronWeb.Trx.verifyMessageV2(message, signature);
58
+ },
59
+ proxy: function (functionName) {
60
+ var args = [];
61
+ for (var _i = 1; _i < arguments.length; _i++) {
62
+ args[_i - 1] = arguments[_i];
63
+ }
64
+ return TronWeb[functionName].apply(TronWeb, args);
65
+ }
66
+ };
67
+ //# sourceMappingURL=tron.plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tron.plugin.js","sourceRoot":"","sources":["../../src/hd/tron.plugin.ts"],"names":[],"mappings":";;;AAAA,IAAM,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;AAMtB,QAAA,MAAM,GAAgB;IACjC,eAAe,YAAC,UAAkB;QAChC,+CAA+C;QAC/C,OAAO,UAAU,CAAC,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;IACzE,CAAC;IACD,OAAO,YAAC,GAAa;QACnB,IAAI,GAAG,CAAC,UAAU,EAAE;YAClB,IAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YACxD,IAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;YAC1D,OAAO,MAAM,CAAC;SACf;QACD,IAAI,GAAG,CAAC,SAAS,EAAE;YACjB,sFAAsF;YACtF,yEAAyE;YACzE,IAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACpE,IAAM,eAAe,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;YACtE,OAAO,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,qBAAqB,CAAC,eAAe,CAAC,CAAC;SACpE;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,cAAc,YAAC,OAAe;QAC5B,OAAO,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IACtD,CAAC;IAED,aAAa,YAAC,MAAc;QAC1B,IAAI;YACF,IAAM,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;YACzF,IAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAAC;YAC1E,IAAM,eAAe,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;YACtE,IAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,qBAAqB,CAAC,eAAe,CAAC,CAAC;YAC5E,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;SACrC;QAAC,OAAO,KAAK,EAAE;YACd,OAAO,KAAK,CAAC;SACd;IACH,CAAC;IACD,IAAI,YAAC,OAAe;QAClB,OAAO,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IACpD,CAAC;IACD;;;;;OAKG;IACH,IAAI,YAAC,OAAe,EAAE,UAAkB;QACtC,IAAM,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,CAAC;QAE3D,OAAO,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACjD,CAAC;IACD,MAAM,YAAC,OAAe,EAAE,SAAiB,EAAE,OAAe;QACxD,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,KAAK,OAAO,CAAC;IACtD,CAAC;IACD,OAAO,YAAC,OAAe,EAAE,SAAiB;QACxC,OAAO,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACzD,CAAC;IACD,KAAK,YAAC,YAAY;QAAE,cAAO;aAAP,UAAO,EAAP,qBAAO,EAAP,IAAO;YAAP,6BAAO;;QACzB,OAAO,OAAO,CAAC,YAAY,CAAC,OAArB,OAAO,EAAkB,IAAI,EAAE;IACxC,CAAC;CACF,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jcc_wallet",
3
- "version": "1.3.0",
3
+ "version": "2.0.0",
4
4
  "description": "Toolkit of wallet to manage multiple chains & support multiple keystores for each chain",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",
@@ -16,10 +16,12 @@
16
16
  "build": "tsc --skipLibCheck",
17
17
  "test": "npm run test:node && npm run test:browser",
18
18
  "test:node": "npm run build && nyc --extension=.ts --reporter=lcov --reporter=html --reporter=text mocha --timeout=3000 test/*.spec.js",
19
- "test:browser": "npm run build && karma start karma.conf.js",
19
+ "test:browser": "npm run babel && npm run babel-ethereum-wallet && npm run build && karma start karma.conf.js",
20
20
  "tslint": "tslint --project tsconfig.json --config tslint.json",
21
- "compile": "./compile.sh",
22
- "pretty": "pretty-quick --staged"
21
+ "compile": "npm run babel && npm run babel-ethereum-wallet && ./compile.sh",
22
+ "pretty": "pretty-quick --staged",
23
+ "babel": "babel --plugins @babel/plugin-transform-optional-chaining node_modules/@noble/curves/abstract/weierstrass.js -o node_modules/@noble/curves/abstract/weierstrass.js && babel --plugins @babel/plugin-transform-optional-chaining node_modules/@ethereumjs/wallet/dist/esm/thirdparty.js -o node_modules/@ethereumjs/wallet/dist/esm/thirdparty.js && babel --plugins @babel/plugin-transform-optional-chaining node_modules/@ethereumjs/util/dist/esm/asyncEventEmitter.js -o node_modules/@ethereumjs/util/dist/esm/asyncEventEmitter.js",
24
+ "babel-ethereum-wallet": "babel --plugins @babel/plugin-transform-modules-commonjs node_modules/@ethereumjs/wallet/dist/esm/index.js -o node_modules/@ethereumjs/wallet/dist/esm/index.js && babel --plugins @babel/plugin-transform-modules-commonjs node_modules/@ethereumjs/util/dist/esm/asyncEventEmitter.js -o node_modules/@ethereumjs/wallet/util/esm/asyncEventEmitter.js && babel --plugins @babel/plugin-transform-modules-commonjs node_modules/@ethereumjs/util/dist/esm/mapDB.js -o node_modules/@ethereumjs/util/dist/esm/mapDB.js"
23
25
  },
24
26
  "repository": {
25
27
  "type": "git",
@@ -45,12 +47,14 @@
45
47
  },
46
48
  "homepage": "https://github.com/JCCDex/jcc_wallet#readme",
47
49
  "devDependencies": {
48
- "@babel/cli": "^7.22.15",
49
- "@babel/core": "^7.22.15",
50
+ "@babel/cli": "^7.23.0",
51
+ "@babel/core": "^7.23.2",
52
+ "@babel/plugin-transform-modules-commonjs": "^7.23.3",
53
+ "@babel/plugin-transform-optional-chaining": "^7.23.0",
50
54
  "@babel/plugin-transform-typescript": "^7.22.15",
51
- "@babel/preset-env": "^7.22.15",
55
+ "@babel/preset-env": "^7.23.2",
52
56
  "@babel/preset-typescript": "^7.22.15",
53
- "babel-loader": "^8.2.2",
57
+ "babel-loader": "^8.3.0",
54
58
  "browserify": "^16.5.0",
55
59
  "chai": "^4.2.0",
56
60
  "coveralls": "^3.0.9",
@@ -95,7 +99,8 @@
95
99
  "keccak": "^3.0.3",
96
100
  "lockr": "^0.8.5",
97
101
  "scryptsy": "^2.1.0",
98
- "tiny-secp256k1": "^2.2.3"
102
+ "tiny-secp256k1": "^1.1.6",
103
+ "tronweb": "^5.3.1"
99
104
  },
100
105
  "nyc": {
101
106
  "check-coverage": true,