@activeledger/sdk-node 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.
- package/LICENSE +21 -0
- package/lib/asn.d.ts +13 -0
- package/lib/asn.d.ts.map +1 -0
- package/lib/asn.js +106 -0
- package/lib/asn.js.map +1 -0
- package/lib/crypto.d.ts +10 -0
- package/lib/crypto.d.ts.map +1 -0
- package/lib/crypto.js +74 -0
- package/lib/crypto.js.map +1 -0
- package/lib/events.d.ts +5 -0
- package/lib/events.d.ts.map +1 -0
- package/lib/events.js +12 -0
- package/lib/events.js.map +1 -0
- package/lib/index.d.ts +7 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +27 -0
- package/lib/index.js.map +1 -0
- package/lib/interfaces.d.ts +16 -0
- package/lib/interfaces.d.ts.map +1 -0
- package/lib/interfaces.js +3 -0
- package/lib/interfaces.js.map +1 -0
- package/lib/key.d.ts +13 -0
- package/lib/key.d.ts.map +1 -0
- package/lib/key.js +141 -0
- package/lib/key.js.map +1 -0
- package/lib/transaction.d.ts +5 -0
- package/lib/transaction.d.ts.map +1 -0
- package/lib/transaction.js +12 -0
- package/lib/transaction.js.map +1 -0
- package/package.json +47 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2018
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/lib/asn.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
/// <reference types="node" />
|
|
3
|
+
export declare class AsnParser {
|
|
4
|
+
static decodeECPrivateKey(pkcs8pem: string, label?: string): string;
|
|
5
|
+
static encodeECPrivateKey(prv: Buffer, pub: Buffer, label?: string): string;
|
|
6
|
+
static decodeECPublicKey(pkcs8pem: string, label?: string): string;
|
|
7
|
+
static encodeECPublicKey(key: Buffer, label?: string): string;
|
|
8
|
+
private static ECPrivASN;
|
|
9
|
+
private static ECPrivLiteASN;
|
|
10
|
+
private static ECPubASN;
|
|
11
|
+
private static extractNestedKeys;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=asn.d.ts.map
|
package/lib/asn.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"asn.d.ts","sourceRoot":"","sources":["../src/asn.ts"],"names":[],"mappings":";;AA+BA,qBAAa,SAAS;WACN,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,SAAmB,GAAG,MAAM;WAStE,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,SAAmB,GAAG,MAAM;WAgB9E,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,SAAe,GAAG,MAAM;WAUjE,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,SAAe,GAAG,MAAM;IAoB1E,OAAO,CAAC,MAAM,CAAC,SAAS,CAcrB;IAEH,OAAO,CAAC,MAAM,CAAC,aAAa,CAczB;IAEH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAKpB;IAEH,OAAO,CAAC,MAAM,CAAC,iBAAiB;CAejC"}
|
package/lib/asn.js
ADDED
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.AsnParser = void 0;
|
|
27
|
+
const asn1 = __importStar(require("asn1.js"));
|
|
28
|
+
class AsnParser {
|
|
29
|
+
static decodeECPrivateKey(pkcs8pem, label = "EC PRIVATE KEY") {
|
|
30
|
+
return AsnParser.extractNestedKeys(AsnParser.ECPrivASN.decode(pkcs8pem, "pem", {
|
|
31
|
+
label: label,
|
|
32
|
+
partial: true,
|
|
33
|
+
}).result);
|
|
34
|
+
}
|
|
35
|
+
static encodeECPrivateKey(prv, pub, label = "EC PRIVATE KEY") {
|
|
36
|
+
return AsnParser.ECPrivLiteASN.encode({
|
|
37
|
+
version: 1,
|
|
38
|
+
privateKey: prv,
|
|
39
|
+
params: { type: "curve", value: [1, 3, 132, 0, 10] },
|
|
40
|
+
publicKey: { unused: 0, data: pub },
|
|
41
|
+
}, "pem", {
|
|
42
|
+
label: label,
|
|
43
|
+
partial: true,
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
static decodeECPublicKey(pkcs8pem, label = "PUBLIC KEY") {
|
|
47
|
+
return AsnParser.extractNestedKeys(AsnParser.ECPubASN.decode(pkcs8pem, "pem", {
|
|
48
|
+
label: label,
|
|
49
|
+
partial: true,
|
|
50
|
+
}).result, "publicKey");
|
|
51
|
+
}
|
|
52
|
+
static encodeECPublicKey(key, label = "PUBLIC KEY") {
|
|
53
|
+
return AsnParser.ECPubASN.encode({
|
|
54
|
+
algorithm: {
|
|
55
|
+
id: [1, 2, 840, 10045, 2, 1],
|
|
56
|
+
curve: [1, 3, 132, 0, 10],
|
|
57
|
+
},
|
|
58
|
+
publicKey: {
|
|
59
|
+
unused: 0,
|
|
60
|
+
data: key,
|
|
61
|
+
},
|
|
62
|
+
}, "pem", {
|
|
63
|
+
label: label,
|
|
64
|
+
partial: true,
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
static extractNestedKeys(asn, type = "privateKey") {
|
|
68
|
+
if (asn[type]) {
|
|
69
|
+
if (asn[type].data) {
|
|
70
|
+
return asn[type].data.toString("hex");
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
return asn[type].toString("hex");
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
if (asn.ECNested) {
|
|
78
|
+
return AsnParser.extractNestedKeys(asn.ECNested, type);
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
throw new Error("PPK not found inside ASN");
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
exports.AsnParser = AsnParser;
|
|
87
|
+
AsnParser.ECPrivASN = asn1.define("ECPrivASN", function () {
|
|
88
|
+
this.seq().obj(this.key("version").int(), this.key("privateKey").octstr().optional(), this.seq().optional().obj(), this.key("ECNested")
|
|
89
|
+
.octstr()
|
|
90
|
+
.optional()
|
|
91
|
+
.contains(asn1.define("ECNested", function () {
|
|
92
|
+
this.seq().obj(this.key("version").int(), this.key("privateKey").octstr());
|
|
93
|
+
})));
|
|
94
|
+
});
|
|
95
|
+
AsnParser.ECPrivLiteASN = asn1.define("ECPrivASN", function () {
|
|
96
|
+
this.seq().obj(this.key("version").int(), this.key("privateKey").octstr(), this.key("params")
|
|
97
|
+
.optional()
|
|
98
|
+
.explicit(0)
|
|
99
|
+
.use(asn1.define("params", function () {
|
|
100
|
+
this.choice({ curve: this.objid() });
|
|
101
|
+
})), this.key("public_key").optional().explicit(1).bitstr());
|
|
102
|
+
});
|
|
103
|
+
AsnParser.ECPubASN = asn1.define("ECPubASN", function () {
|
|
104
|
+
this.seq().obj(this.key("algorithm").optional().seq().obj(this.key("id").objid(), this.key("curve").objid()), this.key("publicKey").bitstr());
|
|
105
|
+
});
|
|
106
|
+
//# sourceMappingURL=asn.js.map
|
package/lib/asn.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"asn.js","sourceRoot":"","sources":["../src/asn.ts"],"names":[],"mappings":"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"}
|
package/lib/crypto.d.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ICryptoProvider, IKeyHandleDetails, IKeyHandler } from "@activeledger/sdk-core";
|
|
2
|
+
export declare class NodeCryptoProvider implements ICryptoProvider {
|
|
3
|
+
generate(compressed?: boolean): IKeyHandler;
|
|
4
|
+
private toFixedLength;
|
|
5
|
+
sign(data: string, prv: IKeyHandleDetails): string;
|
|
6
|
+
verify(data: string, signature: string, pub: IKeyHandleDetails): boolean;
|
|
7
|
+
private toPrivatePem;
|
|
8
|
+
private toPublicPem;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=crypto.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"crypto.d.ts","sourceRoot":"","sources":["../src/crypto.ts"],"names":[],"mappings":"AAwBA,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAczF,qBAAa,kBAAmB,YAAW,eAAe;IACjD,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,GAAG,WAAW;IAyBlD,OAAO,CAAC,aAAa;IASd,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,iBAAiB,GAAG,MAAM;IAMlD,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,iBAAiB,GAAG,OAAO;IAe/E,OAAO,CAAC,YAAY;IAOpB,OAAO,CAAC,WAAW;CAMpB"}
|
package/lib/crypto.js
ADDED
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.NodeCryptoProvider = void 0;
|
|
27
|
+
const crypto = __importStar(require("crypto"));
|
|
28
|
+
const asn_1 = require("./asn");
|
|
29
|
+
class NodeCryptoProvider {
|
|
30
|
+
generate(compressed) {
|
|
31
|
+
const curve = crypto.createECDH("secp256k1");
|
|
32
|
+
curve.generateKeys();
|
|
33
|
+
return {
|
|
34
|
+
prv: { pkcs8pem: "0x" + this.toFixedLength(curve.getPrivateKey(), 32).toString("hex") },
|
|
35
|
+
pub: {
|
|
36
|
+
pkcs8pem: compressed
|
|
37
|
+
? "0x" + curve.getPublicKey("hex", "compressed")
|
|
38
|
+
: "0x" + curve.getPublicKey("hex", "uncompressed"),
|
|
39
|
+
},
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
toFixedLength(buf, length) {
|
|
43
|
+
if (buf.length === length) {
|
|
44
|
+
return buf;
|
|
45
|
+
}
|
|
46
|
+
const padded = Buffer.alloc(length);
|
|
47
|
+
buf.copy(padded, length - buf.length);
|
|
48
|
+
return padded;
|
|
49
|
+
}
|
|
50
|
+
sign(data, prv) {
|
|
51
|
+
const sign = crypto.createSign("sha256");
|
|
52
|
+
sign.update(data);
|
|
53
|
+
return Buffer.from(sign.sign(this.toPrivatePem(prv.pkcs8pem), "hex"), "hex").toString("base64");
|
|
54
|
+
}
|
|
55
|
+
verify(data, signature, pub) {
|
|
56
|
+
const verify = crypto.createVerify("sha256");
|
|
57
|
+
verify.update(data);
|
|
58
|
+
return verify.verify(this.toPublicPem(pub.pkcs8pem), Buffer.from(signature, "base64"));
|
|
59
|
+
}
|
|
60
|
+
toPrivatePem(key) {
|
|
61
|
+
if (key.indexOf("PRIVATE") !== -1) {
|
|
62
|
+
return key;
|
|
63
|
+
}
|
|
64
|
+
return asn_1.AsnParser.encodeECPrivateKey(Buffer.from(key.replace(/^0x/, ""), "hex"), Buffer.from(""));
|
|
65
|
+
}
|
|
66
|
+
toPublicPem(key) {
|
|
67
|
+
if (key.indexOf("PUBLIC") !== -1) {
|
|
68
|
+
return key;
|
|
69
|
+
}
|
|
70
|
+
return asn_1.AsnParser.encodeECPublicKey(Buffer.from(key.replace(/^0x/, ""), "hex"));
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
exports.NodeCryptoProvider = NodeCryptoProvider;
|
|
74
|
+
//# sourceMappingURL=crypto.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"crypto.js","sourceRoot":"","sources":["../src/crypto.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAuBA,+CAAiC;AAEjC,+BAAkC;AAalC,MAAa,kBAAkB;IACtB,QAAQ,CAAC,UAAoB;QAClC,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QAC7C,KAAK,CAAC,YAAY,EAAE,CAAC;QAErB,OAAO;YAOL,GAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,aAAa,EAAE,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;YACvF,GAAG,EAAE;gBACH,QAAQ,EAAE,UAAU;oBAClB,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,YAAY,CAAC;oBAChD,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,cAAc,CAAC;aACrD;SACF,CAAC;IACJ,CAAC;IAOO,aAAa,CAAC,GAAW,EAAE,MAAc;QAC/C,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,EAAE;YACzB,OAAO,GAAG,CAAC;SACZ;QACD,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACpC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;QACtC,OAAO,MAAM,CAAC;IAChB,CAAC;IAEM,IAAI,CAAC,IAAY,EAAE,GAAsB;QAC9C,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QACzC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAClB,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAClG,CAAC;IAEM,MAAM,CAAC,IAAY,EAAE,SAAiB,EAAE,GAAsB;QACnE,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAC7C,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACpB,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;IACzF,CAAC;IAWO,YAAY,CAAC,GAAW;QAC9B,IAAI,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE;YACjC,OAAO,GAAG,CAAC;SACZ;QACD,OAAO,eAAS,CAAC,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IACnG,CAAC;IAEO,WAAW,CAAC,GAAW;QAC7B,IAAI,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE;YAChC,OAAO,GAAG,CAAC;SACZ;QACD,OAAO,eAAS,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;IACjF,CAAC;CACF;AArED,gDAqEC"}
|
package/lib/events.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"AAwBA,OAAO,EAAE,YAAY,IAAI,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAW1E,qBAAa,YAAa,SAAQ,gBAAgB;gBACpC,GAAG,EAAE,MAAM;CAGxB"}
|
package/lib/events.js
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.LedgerEvents = void 0;
|
|
4
|
+
const EventSourceN = require("eventsource");
|
|
5
|
+
const sdk_core_1 = require("@activeledger/sdk-core");
|
|
6
|
+
class LedgerEvents extends sdk_core_1.LedgerEvents {
|
|
7
|
+
constructor(url) {
|
|
8
|
+
super(url, (u) => new EventSourceN(u));
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
exports.LedgerEvents = LedgerEvents;
|
|
12
|
+
//# sourceMappingURL=events.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":";;;AAuBA,4CAA6C;AAC7C,qDAA0E;AAW1E,MAAa,YAAa,SAAQ,uBAAgB;IAChD,YAAY,GAAW;QACrB,KAAK,CAAC,GAAG,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,IAAI,YAAY,CAAC,CAAC,CAAQ,CAAC,CAAC;IACxD,CAAC;CACF;AAJD,oCAIC"}
|
package/lib/index.d.ts
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export * from "@activeledger/sdk-core";
|
|
2
|
+
export * from "./crypto";
|
|
3
|
+
export * from "./interfaces";
|
|
4
|
+
export { KeyHandler } from "./key";
|
|
5
|
+
export { TransactionHandler } from "./transaction";
|
|
6
|
+
export { LedgerEvents } from "./events";
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAuBA,cAAc,wBAAwB,CAAC;AAKvC,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACnC,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC"}
|
package/lib/index.js
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.LedgerEvents = exports.TransactionHandler = exports.KeyHandler = void 0;
|
|
18
|
+
__exportStar(require("@activeledger/sdk-core"), exports);
|
|
19
|
+
__exportStar(require("./crypto"), exports);
|
|
20
|
+
__exportStar(require("./interfaces"), exports);
|
|
21
|
+
var key_1 = require("./key");
|
|
22
|
+
Object.defineProperty(exports, "KeyHandler", { enumerable: true, get: function () { return key_1.KeyHandler; } });
|
|
23
|
+
var transaction_1 = require("./transaction");
|
|
24
|
+
Object.defineProperty(exports, "TransactionHandler", { enumerable: true, get: function () { return transaction_1.TransactionHandler; } });
|
|
25
|
+
var events_1 = require("./events");
|
|
26
|
+
Object.defineProperty(exports, "LedgerEvents", { enumerable: true, get: function () { return events_1.LedgerEvents; } });
|
|
27
|
+
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAuBA,yDAAuC;AAKvC,2CAAyB;AACzB,+CAA6B;AAC7B,6BAAmC;AAA1B,iGAAA,UAAU,OAAA;AACnB,6CAAmD;AAA1C,iHAAA,kBAAkB,OAAA;AAC3B,mCAAwC;AAA/B,sGAAA,YAAY,OAAA"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { IKey } from "@activeledger/sdk-core";
|
|
2
|
+
export interface IKeyExportOptions {
|
|
3
|
+
location: string;
|
|
4
|
+
createDir?: boolean;
|
|
5
|
+
overwrite?: boolean;
|
|
6
|
+
name?: string;
|
|
7
|
+
}
|
|
8
|
+
export interface IKeyExtended extends IKey {
|
|
9
|
+
phrase?: string;
|
|
10
|
+
}
|
|
11
|
+
export interface IBIP39Options {
|
|
12
|
+
compressed?: boolean;
|
|
13
|
+
passphrase?: string;
|
|
14
|
+
legacy?: boolean;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=interfaces.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../src/interfaces.ts"],"names":[],"mappings":"AAuBA,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAI9C,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAKD,MAAM,WAAW,YAAa,SAAQ,IAAI;IACxC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAGD,MAAM,WAAW,aAAa;IAC5B,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,UAAU,CAAC,EAAE,MAAM,CAAC;IAQpB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../src/interfaces.ts"],"names":[],"mappings":""}
|
package/lib/key.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { IKey, KeyHandler as CoreKeyHandler } from "@activeledger/sdk-core";
|
|
2
|
+
import { IBIP39Options, IKeyExportOptions, IKeyExtended } from "./interfaces";
|
|
3
|
+
export declare class KeyHandler extends CoreKeyHandler {
|
|
4
|
+
constructor();
|
|
5
|
+
generateBIP39Key(keyName: string, options?: IBIP39Options): Promise<IKeyExtended>;
|
|
6
|
+
restoreBIP39Key(keyName: string, phrase: string, options?: IBIP39Options): Promise<IKeyExtended>;
|
|
7
|
+
private deriveBIP32MasterKey;
|
|
8
|
+
exportKey(key: IKey, options: IKeyExportOptions): Promise<void>;
|
|
9
|
+
exportKey(key: IKey, location: string, createDir?: boolean, overwrite?: boolean, name?: string): Promise<void>;
|
|
10
|
+
importKey(path: string): Promise<IKey>;
|
|
11
|
+
private stripTrailing;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=key.d.ts.map
|
package/lib/key.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"key.d.ts","sourceRoot":"","sources":["../src/key.ts"],"names":[],"mappings":"AA0BA,OAAO,EAAE,IAAI,EAAE,UAAU,IAAI,cAAc,EAAW,MAAM,wBAAwB,CAAC;AACrF,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAU9E,qBAAa,UAAW,SAAQ,cAAc;;IAarC,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IA0BjF,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,YAAY,CAAC;IAmD3G,OAAO,CAAC,oBAAoB;IAYrB,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAY/D,SAAS,CACd,GAAG,EAAE,IAAI,EACT,QAAQ,EAAE,MAAM,EAChB,SAAS,CAAC,EAAE,OAAO,EACnB,SAAS,CAAC,EAAE,OAAO,EACnB,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC;IAmET,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA2B7C,OAAO,CAAC,aAAa;CAOtB"}
|
package/lib/key.js
ADDED
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.KeyHandler = void 0;
|
|
27
|
+
const crypto = __importStar(require("crypto"));
|
|
28
|
+
const fs = __importStar(require("fs"));
|
|
29
|
+
const bip39_1 = require("bip39");
|
|
30
|
+
const sdk_core_1 = require("@activeledger/sdk-core");
|
|
31
|
+
const crypto_1 = require("./crypto");
|
|
32
|
+
class KeyHandler extends sdk_core_1.KeyHandler {
|
|
33
|
+
constructor() {
|
|
34
|
+
super(new crypto_1.NodeCryptoProvider());
|
|
35
|
+
}
|
|
36
|
+
generateBIP39Key(keyName, options) {
|
|
37
|
+
return this.restoreBIP39Key(keyName, (0, bip39_1.generateMnemonic)(), options);
|
|
38
|
+
}
|
|
39
|
+
restoreBIP39Key(keyName, phrase, options = {}) {
|
|
40
|
+
return new Promise((resolve, reject) => {
|
|
41
|
+
try {
|
|
42
|
+
const privateKey = options.legacy
|
|
43
|
+
? crypto.createHash("sha256").update(phrase, "utf8").digest()
|
|
44
|
+
: this.deriveBIP32MasterKey((0, bip39_1.mnemonicToSeedSync)(phrase, options.passphrase || ""));
|
|
45
|
+
const curve = crypto.createECDH("secp256k1");
|
|
46
|
+
curve.setPrivateKey(privateKey);
|
|
47
|
+
const keyHolder = {
|
|
48
|
+
key: {
|
|
49
|
+
pub: {
|
|
50
|
+
pkcs8pem: "0x" +
|
|
51
|
+
(options.compressed ? curve.getPublicKey("hex", "compressed") : curve.getPublicKey("hex", "uncompressed")),
|
|
52
|
+
},
|
|
53
|
+
prv: { pkcs8pem: "0x" + privateKey.toString("hex") },
|
|
54
|
+
},
|
|
55
|
+
name: keyName,
|
|
56
|
+
type: sdk_core_1.KeyType.EllipticCurve,
|
|
57
|
+
phrase,
|
|
58
|
+
};
|
|
59
|
+
resolve(keyHolder);
|
|
60
|
+
}
|
|
61
|
+
catch (error) {
|
|
62
|
+
reject(error);
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
deriveBIP32MasterKey(seed) {
|
|
67
|
+
return crypto.createHmac("sha512", "Bitcoin seed").update(seed).digest().subarray(0, 32);
|
|
68
|
+
}
|
|
69
|
+
exportKey(key, locationOrOptions, createDir, overwrite, name) {
|
|
70
|
+
return new Promise((resolve, reject) => {
|
|
71
|
+
const setOptions = () => {
|
|
72
|
+
return {
|
|
73
|
+
createDir: createDir ? true : false,
|
|
74
|
+
location: locationOrOptions,
|
|
75
|
+
name,
|
|
76
|
+
overwrite: overwrite ? true : false,
|
|
77
|
+
};
|
|
78
|
+
};
|
|
79
|
+
const options = typeof locationOrOptions === "string" ? setOptions() : locationOrOptions;
|
|
80
|
+
if (options.createDir) {
|
|
81
|
+
try {
|
|
82
|
+
fs.mkdirSync(options.location, { recursive: true });
|
|
83
|
+
}
|
|
84
|
+
catch (err) {
|
|
85
|
+
return reject(err);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
options.location = this.stripTrailing(options.location);
|
|
89
|
+
const path = options.name ? `${options.location}/${options.name}.json` : `${options.location}/${key.name}.json`;
|
|
90
|
+
const dirExists = fs.existsSync(options.location);
|
|
91
|
+
if (dirExists) {
|
|
92
|
+
const fileExists = fs.existsSync(path);
|
|
93
|
+
if (fileExists && !options.overwrite) {
|
|
94
|
+
reject("File already exists, set overwrite to true or use a different name");
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
fs.writeFile(path, JSON.stringify(key), (error) => {
|
|
98
|
+
if (error) {
|
|
99
|
+
reject(error);
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
resolve();
|
|
103
|
+
}
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
else {
|
|
108
|
+
reject("Unable to find location");
|
|
109
|
+
}
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
importKey(path) {
|
|
113
|
+
return new Promise((resolve, reject) => {
|
|
114
|
+
fs.exists(path, (fileExists) => {
|
|
115
|
+
if (fileExists) {
|
|
116
|
+
fs.readFile(path, (error, buffer) => {
|
|
117
|
+
if (error) {
|
|
118
|
+
reject(error);
|
|
119
|
+
}
|
|
120
|
+
else {
|
|
121
|
+
const data = buffer.toString();
|
|
122
|
+
resolve(JSON.parse(data));
|
|
123
|
+
}
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
else {
|
|
127
|
+
reject("File not found.");
|
|
128
|
+
}
|
|
129
|
+
});
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
stripTrailing(path) {
|
|
133
|
+
const lastChar = path.slice(path.length - 1, path.length);
|
|
134
|
+
if (lastChar === "/") {
|
|
135
|
+
return path.slice(0, path.length - 1);
|
|
136
|
+
}
|
|
137
|
+
return path;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
exports.KeyHandler = KeyHandler;
|
|
141
|
+
//# sourceMappingURL=key.js.map
|
package/lib/key.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"key.js","sourceRoot":"","sources":["../src/key.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../src/transaction.ts"],"names":[],"mappings":"AAuBA,OAAO,EAAE,kBAAkB,IAAI,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAWtF,qBAAa,kBAAmB,SAAQ,sBAAsB;;CAI7D"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TransactionHandler = void 0;
|
|
4
|
+
const sdk_core_1 = require("@activeledger/sdk-core");
|
|
5
|
+
const crypto_1 = require("./crypto");
|
|
6
|
+
class TransactionHandler extends sdk_core_1.TransactionHandler {
|
|
7
|
+
constructor() {
|
|
8
|
+
super(new crypto_1.NodeCryptoProvider());
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
exports.TransactionHandler = TransactionHandler;
|
|
12
|
+
//# sourceMappingURL=transaction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transaction.js","sourceRoot":"","sources":["../src/transaction.ts"],"names":[],"mappings":";;;AAuBA,qDAAsF;AACtF,qCAA8C;AAU9C,MAAa,kBAAmB,SAAQ,6BAAsB;IAC5D;QACE,KAAK,CAAC,IAAI,2BAAkB,EAAE,CAAC,CAAC;IAClC,CAAC;CACF;AAJD,gDAIC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@activeledger/sdk-node",
|
|
3
|
+
"version": "2.0.0",
|
|
4
|
+
"description": "Activeledger SDK for Node.js - secp256k1 signing via node:crypto (no external crypto dependency)",
|
|
5
|
+
"main": "lib/index.js",
|
|
6
|
+
"types": "lib/index.d.ts",
|
|
7
|
+
"scripts": {
|
|
8
|
+
"build": "tsc",
|
|
9
|
+
"prepublishOnly": "npm run build"
|
|
10
|
+
},
|
|
11
|
+
"homepage": "https://github.com/activeledger/SDK-NodeJS",
|
|
12
|
+
"keywords": [
|
|
13
|
+
"activeledger",
|
|
14
|
+
"nodejs",
|
|
15
|
+
"sdk",
|
|
16
|
+
"blockchain",
|
|
17
|
+
"dlt",
|
|
18
|
+
"distributed ledger technology",
|
|
19
|
+
"ledger",
|
|
20
|
+
"smart contracts"
|
|
21
|
+
],
|
|
22
|
+
"repository": {
|
|
23
|
+
"type": "git",
|
|
24
|
+
"url": "git+https://github.com/activeledger/SDK-NodeJS.git",
|
|
25
|
+
"directory": "packages/node"
|
|
26
|
+
},
|
|
27
|
+
"bugs": {
|
|
28
|
+
"url": "https://github.com/activeledger/SDK-NodeJS/issues"
|
|
29
|
+
},
|
|
30
|
+
"author": "Activeledger",
|
|
31
|
+
"license": "MIT",
|
|
32
|
+
"files": [
|
|
33
|
+
"lib"
|
|
34
|
+
],
|
|
35
|
+
"dependencies": {
|
|
36
|
+
"@activeledger/sdk-core": "^2.0.0",
|
|
37
|
+
"asn1.js": "^5.4.1",
|
|
38
|
+
"bip39": "3.1.0",
|
|
39
|
+
"eventsource": "^2.0.2"
|
|
40
|
+
},
|
|
41
|
+
"devDependencies": {
|
|
42
|
+
"@types/eventsource": "1.1.10",
|
|
43
|
+
"@types/node": "^20.14.0",
|
|
44
|
+
"typescript": "4.9.5"
|
|
45
|
+
},
|
|
46
|
+
"gitHead": "f07817691ebfc1dfd38d7c90aa5cb9a454ae4f89"
|
|
47
|
+
}
|