@bitgo-beta/sdk-coin-icp 1.0.1-beta.7 → 1.0.1-beta.71
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/CHANGELOG.md +28 -0
- package/dist/src/icp.d.ts +9 -2
- package/dist/src/icp.d.ts.map +1 -1
- package/dist/src/icp.js +21 -6
- package/dist/src/lib/keyPair.d.ts +18 -0
- package/dist/src/lib/keyPair.d.ts.map +1 -0
- package/dist/src/lib/keyPair.js +60 -0
- package/dist/src/lib/utils.d.ts +18 -2
- package/dist/src/lib/utils.d.ts.map +1 -1
- package/dist/src/lib/utils.js +151 -4
- package/package.json +12 -6
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,34 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [1.3.0](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-icp@1.2.1...@bitgo/sdk-coin-icp@1.3.0) (2025-02-19)
|
|
7
|
+
|
|
8
|
+
### Features
|
|
9
|
+
|
|
10
|
+
- **sdk-coin-icp:** refactor getAddressFromPublicKey to use utils method ([702ffe8](https://github.com/BitGo/BitGoJS/commit/702ffe88376c7a19ec73f8e2e066cc707bcecc25))
|
|
11
|
+
|
|
12
|
+
## [1.2.1](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-icp@1.2.0...@bitgo/sdk-coin-icp@1.2.1) (2025-02-11)
|
|
13
|
+
|
|
14
|
+
**Note:** Version bump only for package @bitgo/sdk-coin-icp
|
|
15
|
+
|
|
16
|
+
# [1.2.0](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-icp@1.1.3...@bitgo/sdk-coin-icp@1.2.0) (2025-02-05)
|
|
17
|
+
|
|
18
|
+
### Features
|
|
19
|
+
|
|
20
|
+
- **sdk-coin-icp:** added address creation and validation logic ([5f28145](https://github.com/BitGo/BitGoJS/commit/5f28145a5a2268b4a76599b353c5a95cd409d286))
|
|
21
|
+
|
|
22
|
+
## [1.1.3](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-icp@1.1.2...@bitgo/sdk-coin-icp@1.1.3) (2025-01-28)
|
|
23
|
+
|
|
24
|
+
**Note:** Version bump only for package @bitgo/sdk-coin-icp
|
|
25
|
+
|
|
26
|
+
## [1.1.2](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-icp@1.1.1...@bitgo/sdk-coin-icp@1.1.2) (2025-01-23)
|
|
27
|
+
|
|
28
|
+
**Note:** Version bump only for package @bitgo/sdk-coin-icp
|
|
29
|
+
|
|
30
|
+
## [1.1.1](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-icp@1.1.0...@bitgo/sdk-coin-icp@1.1.1) (2025-01-23)
|
|
31
|
+
|
|
32
|
+
**Note:** Version bump only for package @bitgo/sdk-coin-icp
|
|
33
|
+
|
|
6
34
|
# 1.1.0 (2025-01-20)
|
|
7
35
|
|
|
8
36
|
### Features
|
package/dist/src/icp.d.ts
CHANGED
|
@@ -19,14 +19,21 @@ export declare class Icp extends BaseCoin {
|
|
|
19
19
|
verifyTransaction(params: VerifyTransactionOptions): Promise<boolean>;
|
|
20
20
|
isWalletAddress(params: TssVerifyAddressOptions): Promise<boolean>;
|
|
21
21
|
parseTransaction(params: ParseTransactionOptions): Promise<ParsedTransaction>;
|
|
22
|
+
/**
|
|
23
|
+
* Generate a new keypair for this coin.
|
|
24
|
+
* @param seed Seed from which the new keypair should be generated, otherwise a random seed is used
|
|
25
|
+
*/
|
|
22
26
|
generateKeyPair(seed?: Buffer): KeyPair;
|
|
23
27
|
isValidAddress(address: string): boolean;
|
|
24
28
|
signTransaction(_: SignTransactionOptions): Promise<SignedTransaction>;
|
|
25
|
-
isValidPub(
|
|
26
|
-
isValidPrv(
|
|
29
|
+
isValidPub(key: string): boolean;
|
|
30
|
+
isValidPrv(key: string): boolean;
|
|
27
31
|
/** @inheritDoc */
|
|
28
32
|
supportsTss(): boolean;
|
|
29
33
|
/** @inheritDoc */
|
|
30
34
|
getMPCAlgorithm(): MPCAlgorithm;
|
|
35
|
+
private getAddressFromPublicKey;
|
|
36
|
+
/** @inheritDoc **/
|
|
37
|
+
protected getPublicNodeUrl(): string;
|
|
31
38
|
}
|
|
32
39
|
//# sourceMappingURL=icp.d.ts.map
|
package/dist/src/icp.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"icp.d.ts","sourceRoot":"","sources":["../../src/icp.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,wBAAwB,EACxB,uBAAuB,EACvB,uBAAuB,EACvB,iBAAiB,EACjB,OAAO,EACP,sBAAsB,EACtB,iBAAiB,
|
|
1
|
+
{"version":3,"file":"icp.d.ts","sourceRoot":"","sources":["../../src/icp.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,wBAAwB,EACxB,uBAAuB,EACvB,uBAAuB,EACvB,iBAAiB,EACjB,OAAO,EACP,sBAAsB,EACtB,iBAAiB,EAElB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,QAAQ,IAAI,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAGlE;;;;;;GAMG;AACH,qBAAa,GAAI,SAAQ,QAAQ;IAC/B,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,eAAe,CAAC,CAAC;IAC3D,SAAS,aAAa,KAAK,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC;IAU/E,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC,GAAG,QAAQ;IAI1F,QAAQ,IAAI,MAAM;IAIlB,YAAY,IAAI,MAAM;IAItB,SAAS,IAAI,MAAM;IAInB,WAAW,IAAI,MAAM;IAIrB,aAAa,IAAI,MAAM;IAIjB,iBAAiB,CAAC,MAAM,EAAE,wBAAwB,GAAG,OAAO,CAAC,OAAO,CAAC;IAIrE,eAAe,CAAC,MAAM,EAAE,uBAAuB,GAAG,OAAO,CAAC,OAAO,CAAC;IAIlE,gBAAgB,CAAC,MAAM,EAAE,uBAAuB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAInF;;;OAGG;IACI,eAAe,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO;IAI9C,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAIxC,eAAe,CAAC,CAAC,EAAE,sBAAsB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAItE,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIhC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIhC,kBAAkB;IAClB,WAAW,IAAI,OAAO;IAItB,kBAAkB;IAClB,eAAe,IAAI,YAAY;YAIjB,uBAAuB;IAIrC,mBAAmB;IACnB,SAAS,CAAC,gBAAgB,IAAI,MAAM;CAGrC"}
|
package/dist/src/icp.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
exports.Icp = void 0;
|
|
4
7
|
const sdk_core_1 = require("@bitgo-beta/sdk-core");
|
|
8
|
+
const utils_1 = __importDefault(require("./lib/utils"));
|
|
5
9
|
/**
|
|
6
10
|
* Class representing the Internet Computer (ICP) coin.
|
|
7
11
|
* Extends the BaseCoin class and provides specific implementations for ICP.
|
|
@@ -44,8 +48,12 @@ class Icp extends sdk_core_1.BaseCoin {
|
|
|
44
48
|
async parseTransaction(params) {
|
|
45
49
|
throw new Error('Method not implemented.');
|
|
46
50
|
}
|
|
51
|
+
/**
|
|
52
|
+
* Generate a new keypair for this coin.
|
|
53
|
+
* @param seed Seed from which the new keypair should be generated, otherwise a random seed is used
|
|
54
|
+
*/
|
|
47
55
|
generateKeyPair(seed) {
|
|
48
|
-
|
|
56
|
+
return utils_1.default.generateKeyPair(seed);
|
|
49
57
|
}
|
|
50
58
|
isValidAddress(address) {
|
|
51
59
|
throw new Error('Method not implemented.');
|
|
@@ -53,11 +61,11 @@ class Icp extends sdk_core_1.BaseCoin {
|
|
|
53
61
|
signTransaction(_) {
|
|
54
62
|
throw new Error('Method not implemented.');
|
|
55
63
|
}
|
|
56
|
-
isValidPub(
|
|
57
|
-
|
|
64
|
+
isValidPub(key) {
|
|
65
|
+
return utils_1.default.isValidPublicKey(key);
|
|
58
66
|
}
|
|
59
|
-
isValidPrv(
|
|
60
|
-
|
|
67
|
+
isValidPrv(key) {
|
|
68
|
+
return utils_1.default.isValidPrivateKey(key);
|
|
61
69
|
}
|
|
62
70
|
/** @inheritDoc */
|
|
63
71
|
supportsTss() {
|
|
@@ -67,6 +75,13 @@ class Icp extends sdk_core_1.BaseCoin {
|
|
|
67
75
|
getMPCAlgorithm() {
|
|
68
76
|
return 'ecdsa';
|
|
69
77
|
}
|
|
78
|
+
async getAddressFromPublicKey(hexEncodedPublicKey) {
|
|
79
|
+
return utils_1.default.getAddressFromPublicKey(hexEncodedPublicKey);
|
|
80
|
+
}
|
|
81
|
+
/** @inheritDoc **/
|
|
82
|
+
getPublicNodeUrl() {
|
|
83
|
+
return sdk_core_1.Environments[this.bitgo.getEnv()].rosettaNodeURL;
|
|
84
|
+
}
|
|
70
85
|
}
|
|
71
86
|
exports.Icp = Icp;
|
|
72
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
87
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ljcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxtREFZOEI7QUFFOUIsd0RBQWdDO0FBRWhDOzs7Ozs7R0FNRztBQUNILE1BQWEsR0FBSSxTQUFRLG1CQUFRO0lBRS9CLFlBQXNCLEtBQWdCLEVBQUUsV0FBdUM7UUFDN0UsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRWIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ2pCLE1BQU0sSUFBSSxLQUFLLENBQUMsb0RBQW9ELENBQUMsQ0FBQztRQUN4RSxDQUFDO1FBRUQsSUFBSSxDQUFDLFlBQVksR0FBRyxXQUFXLENBQUM7SUFDbEMsQ0FBQztJQUVELE1BQU0sQ0FBQyxjQUFjLENBQUMsS0FBZ0IsRUFBRSxXQUF1QztRQUM3RSxPQUFPLElBQUksR0FBRyxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsUUFBUTtRQUNOLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELFlBQVk7UUFDVixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxTQUFTO1FBQ1AsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsV0FBVztRQUNULE9BQU8sbUJBQW1CLENBQUM7SUFDN0IsQ0FBQztJQUVELGFBQWE7UUFDWCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVELEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxNQUFnQztRQUN0RCxNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELEtBQUssQ0FBQyxlQUFlLENBQUMsTUFBK0I7UUFDbkQsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxLQUFLLENBQUMsZ0JBQWdCLENBQUMsTUFBK0I7UUFDcEQsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRDs7O09BR0c7SUFDSSxlQUFlLENBQUMsSUFBYTtRQUNsQyxPQUFPLGVBQUssQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELGNBQWMsQ0FBQyxPQUFlO1FBQzVCLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsZUFBZSxDQUFDLENBQXlCO1FBQ3ZDLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsVUFBVSxDQUFDLEdBQVc7UUFDcEIsT0FBTyxlQUFLLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELFVBQVUsQ0FBQyxHQUFXO1FBQ3BCLE9BQU8sZUFBSyxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsV0FBVztRQUNULE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixlQUFlO1FBQ2IsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVPLEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxtQkFBMkI7UUFDL0QsT0FBTyxlQUFLLENBQUMsdUJBQXVCLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQsbUJBQW1CO0lBQ1QsZ0JBQWdCO1FBQ3hCLE9BQU8sdUJBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsY0FBYyxDQUFDO0lBQzFELENBQUM7Q0FDRjtBQTFGRCxrQkEwRkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCYXNlQ29pbixcbiAgQml0R29CYXNlLFxuICBNUENBbGdvcml0aG0sXG4gIFZlcmlmeVRyYW5zYWN0aW9uT3B0aW9ucyxcbiAgVHNzVmVyaWZ5QWRkcmVzc09wdGlvbnMsXG4gIFBhcnNlVHJhbnNhY3Rpb25PcHRpb25zLFxuICBQYXJzZWRUcmFuc2FjdGlvbixcbiAgS2V5UGFpcixcbiAgU2lnblRyYW5zYWN0aW9uT3B0aW9ucyxcbiAgU2lnbmVkVHJhbnNhY3Rpb24sXG4gIEVudmlyb25tZW50cyxcbn0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgQmFzZUNvaW4gYXMgU3RhdGljc0Jhc2VDb2luIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgdXRpbHMgZnJvbSAnLi9saWIvdXRpbHMnO1xuXG4vKipcbiAqIENsYXNzIHJlcHJlc2VudGluZyB0aGUgSW50ZXJuZXQgQ29tcHV0ZXIgKElDUCkgY29pbi5cbiAqIEV4dGVuZHMgdGhlIEJhc2VDb2luIGNsYXNzIGFuZCBwcm92aWRlcyBzcGVjaWZpYyBpbXBsZW1lbnRhdGlvbnMgZm9yIElDUC5cbiAqXG4gKiBAc2VlIHtAbGluayBodHRwczovL2ludGVybmV0Y29tcHV0ZXIub3JnL31cbiAqIEBzZWUge0BsaW5rIGh0dHBzOi8vaW50ZXJuZXRjb21wdXRlci5vcmcvZG9jcy9jdXJyZW50L2RldmVsb3Blci1kb2NzL2RlZmkvcm9zZXR0YS9pY3Bfcm9zZXR0YS9kYXRhX2FwaS99XG4gKi9cbmV4cG9ydCBjbGFzcyBJY3AgZXh0ZW5kcyBCYXNlQ29pbiB7XG4gIHByb3RlY3RlZCByZWFkb25seSBfc3RhdGljc0NvaW46IFJlYWRvbmx5PFN0YXRpY3NCYXNlQ29pbj47XG4gIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihiaXRnbzogQml0R29CYXNlLCBzdGF0aWNzQ29pbj86IFJlYWRvbmx5PFN0YXRpY3NCYXNlQ29pbj4pIHtcbiAgICBzdXBlcihiaXRnbyk7XG5cbiAgICBpZiAoIXN0YXRpY3NDb2luKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ21pc3NpbmcgcmVxdWlyZWQgY29uc3RydWN0b3IgcGFyYW1ldGVyIHN0YXRpY3NDb2luJyk7XG4gICAgfVxuXG4gICAgdGhpcy5fc3RhdGljc0NvaW4gPSBzdGF0aWNzQ29pbjtcbiAgfVxuXG4gIHN0YXRpYyBjcmVhdGVJbnN0YW5jZShiaXRnbzogQml0R29CYXNlLCBzdGF0aWNzQ29pbj86IFJlYWRvbmx5PFN0YXRpY3NCYXNlQ29pbj4pOiBCYXNlQ29pbiB7XG4gICAgcmV0dXJuIG5ldyBJY3AoYml0Z28sIHN0YXRpY3NDb2luKTtcbiAgfVxuXG4gIGdldENoYWluKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuICdpY3AnO1xuICB9XG5cbiAgZ2V0QmFzZUNoYWluKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuICdpY3AnO1xuICB9XG5cbiAgZ2V0RmFtaWx5KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuICdpY3AnO1xuICB9XG5cbiAgZ2V0RnVsbE5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gJ0ludGVybmV0IENvbXB1dGVyJztcbiAgfVxuXG4gIGdldEJhc2VGYWN0b3IoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gTWF0aC5wb3coMTAsIHRoaXMuX3N0YXRpY3NDb2luLmRlY2ltYWxQbGFjZXMpO1xuICB9XG5cbiAgYXN5bmMgdmVyaWZ5VHJhbnNhY3Rpb24ocGFyYW1zOiBWZXJpZnlUcmFuc2FjdGlvbk9wdGlvbnMpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgaW1wbGVtZW50ZWQuJyk7XG4gIH1cblxuICBhc3luYyBpc1dhbGxldEFkZHJlc3MocGFyYW1zOiBUc3NWZXJpZnlBZGRyZXNzT3B0aW9ucyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfVxuXG4gIGFzeW5jIHBhcnNlVHJhbnNhY3Rpb24ocGFyYW1zOiBQYXJzZVRyYW5zYWN0aW9uT3B0aW9ucyk6IFByb21pc2U8UGFyc2VkVHJhbnNhY3Rpb24+IHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgaW1wbGVtZW50ZWQuJyk7XG4gIH1cblxuICAvKipcbiAgICogR2VuZXJhdGUgYSBuZXcga2V5cGFpciBmb3IgdGhpcyBjb2luLlxuICAgKiBAcGFyYW0gc2VlZCBTZWVkIGZyb20gd2hpY2ggdGhlIG5ldyBrZXlwYWlyIHNob3VsZCBiZSBnZW5lcmF0ZWQsIG90aGVyd2lzZSBhIHJhbmRvbSBzZWVkIGlzIHVzZWRcbiAgICovXG4gIHB1YmxpYyBnZW5lcmF0ZUtleVBhaXIoc2VlZD86IEJ1ZmZlcik6IEtleVBhaXIge1xuICAgIHJldHVybiB1dGlscy5nZW5lcmF0ZUtleVBhaXIoc2VlZCk7XG4gIH1cblxuICBpc1ZhbGlkQWRkcmVzcyhhZGRyZXNzOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgaW1wbGVtZW50ZWQuJyk7XG4gIH1cblxuICBzaWduVHJhbnNhY3Rpb24oXzogU2lnblRyYW5zYWN0aW9uT3B0aW9ucyk6IFByb21pc2U8U2lnbmVkVHJhbnNhY3Rpb24+IHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgaW1wbGVtZW50ZWQuJyk7XG4gIH1cblxuICBpc1ZhbGlkUHViKGtleTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHV0aWxzLmlzVmFsaWRQdWJsaWNLZXkoa2V5KTtcbiAgfVxuXG4gIGlzVmFsaWRQcnYoa2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdXRpbHMuaXNWYWxpZFByaXZhdGVLZXkoa2V5KTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdERvYyAqL1xuICBzdXBwb3J0c1RzcygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdERvYyAqL1xuICBnZXRNUENBbGdvcml0aG0oKTogTVBDQWxnb3JpdGhtIHtcbiAgICByZXR1cm4gJ2VjZHNhJztcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ2V0QWRkcmVzc0Zyb21QdWJsaWNLZXkoaGV4RW5jb2RlZFB1YmxpY0tleTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHV0aWxzLmdldEFkZHJlc3NGcm9tUHVibGljS2V5KGhleEVuY29kZWRQdWJsaWNLZXkpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0RG9jICoqL1xuICBwcm90ZWN0ZWQgZ2V0UHVibGljTm9kZVVybCgpOiBzdHJpbmcge1xuICAgIHJldHVybiBFbnZpcm9ubWVudHNbdGhpcy5iaXRnby5nZXRFbnYoKV0ucm9zZXR0YU5vZGVVUkw7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { DefaultKeys, KeyPairOptions, Secp256k1ExtendedKeyPair } from '@bitgo-beta/sdk-core';
|
|
2
|
+
/**
|
|
3
|
+
* ICP keys and address management.
|
|
4
|
+
*/
|
|
5
|
+
export declare class KeyPair extends Secp256k1ExtendedKeyPair {
|
|
6
|
+
/**
|
|
7
|
+
* Public constructor. By default, creates a key pair with a random master seed.
|
|
8
|
+
*
|
|
9
|
+
* @param { KeyPairOptions } source Either a master seed, a private key (extended or raw), or a public key
|
|
10
|
+
* (extended, compressed, or uncompressed)
|
|
11
|
+
*/
|
|
12
|
+
constructor(source?: KeyPairOptions);
|
|
13
|
+
/** @inheritdoc */
|
|
14
|
+
getKeys(): DefaultKeys;
|
|
15
|
+
/** @inheritdoc */
|
|
16
|
+
getAddress(): string;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=keyPair.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keyPair.d.ts","sourceRoot":"","sources":["../../../src/lib/keyPair.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,cAAc,EACd,wBAAwB,EAIzB,MAAM,sBAAsB,CAAC;AAO9B;;GAEG;AACH,qBAAa,OAAQ,SAAQ,wBAAwB;IACnD;;;;;OAKG;gBACS,MAAM,CAAC,EAAE,cAAc;IAoBnC,kBAAkB;IAClB,OAAO,IAAI,WAAW;IAOtB,kBAAkB;IAClB,UAAU,IAAI,MAAM;CAMrB"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.KeyPair = void 0;
|
|
7
|
+
const sdk_core_1 = require("@bitgo-beta/sdk-core");
|
|
8
|
+
const utils_1 = __importDefault(require("./utils"));
|
|
9
|
+
const utxo_lib_1 = require("@bitgo-beta/utxo-lib");
|
|
10
|
+
const crypto_1 = require("crypto");
|
|
11
|
+
const DEFAULT_SEED_SIZE_BYTES = 16;
|
|
12
|
+
/**
|
|
13
|
+
* ICP keys and address management.
|
|
14
|
+
*/
|
|
15
|
+
class KeyPair extends sdk_core_1.Secp256k1ExtendedKeyPair {
|
|
16
|
+
/**
|
|
17
|
+
* Public constructor. By default, creates a key pair with a random master seed.
|
|
18
|
+
*
|
|
19
|
+
* @param { KeyPairOptions } source Either a master seed, a private key (extended or raw), or a public key
|
|
20
|
+
* (extended, compressed, or uncompressed)
|
|
21
|
+
*/
|
|
22
|
+
constructor(source) {
|
|
23
|
+
super(source);
|
|
24
|
+
if (!source) {
|
|
25
|
+
const seed = (0, crypto_1.randomBytes)(DEFAULT_SEED_SIZE_BYTES);
|
|
26
|
+
this.hdNode = utxo_lib_1.bip32.fromSeed(seed);
|
|
27
|
+
}
|
|
28
|
+
else if ((0, sdk_core_1.isSeed)(source)) {
|
|
29
|
+
this.hdNode = utxo_lib_1.bip32.fromSeed(source.seed);
|
|
30
|
+
}
|
|
31
|
+
else if ((0, sdk_core_1.isPrivateKey)(source)) {
|
|
32
|
+
super.recordKeysFromPrivateKey(source.prv);
|
|
33
|
+
}
|
|
34
|
+
else if ((0, sdk_core_1.isPublicKey)(source)) {
|
|
35
|
+
super.recordKeysFromPublicKey(source.pub);
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
throw new Error('Invalid key pair options');
|
|
39
|
+
}
|
|
40
|
+
if (this.hdNode) {
|
|
41
|
+
this.keyPair = sdk_core_1.Secp256k1ExtendedKeyPair.toKeyPair(this.hdNode);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
/** @inheritdoc */
|
|
45
|
+
getKeys() {
|
|
46
|
+
return {
|
|
47
|
+
pub: this.getPublicKey({ compressed: true }).toString('hex'),
|
|
48
|
+
prv: this.getPrivateKey()?.toString('hex'),
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
/** @inheritdoc */
|
|
52
|
+
getAddress() {
|
|
53
|
+
const principal = utils_1.default.derivePrincipalFromPublicKey(this.getKeys().pub);
|
|
54
|
+
const subAccount = new Uint8Array(32);
|
|
55
|
+
const accountId = utils_1.default.fromPrincipal(principal, subAccount);
|
|
56
|
+
return accountId.toString();
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
exports.KeyPair = KeyPair;
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5UGFpci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIva2V5UGFpci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxtREFPOEI7QUFDOUIsb0RBQTRCO0FBQzVCLG1EQUE2QztBQUM3QyxtQ0FBcUM7QUFFckMsTUFBTSx1QkFBdUIsR0FBRyxFQUFFLENBQUM7QUFFbkM7O0dBRUc7QUFDSCxNQUFhLE9BQVEsU0FBUSxtQ0FBd0I7SUFDbkQ7Ozs7O09BS0c7SUFDSCxZQUFZLE1BQXVCO1FBQ2pDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNkLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNaLE1BQU0sSUFBSSxHQUFHLElBQUEsb0JBQVcsRUFBQyx1QkFBdUIsQ0FBQyxDQUFDO1lBQ2xELElBQUksQ0FBQyxNQUFNLEdBQUcsZ0JBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDckMsQ0FBQzthQUFNLElBQUksSUFBQSxpQkFBTSxFQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDMUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxnQkFBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDNUMsQ0FBQzthQUFNLElBQUksSUFBQSx1QkFBWSxFQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDaEMsS0FBSyxDQUFDLHdCQUF3QixDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM3QyxDQUFDO2FBQU0sSUFBSSxJQUFBLHNCQUFXLEVBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUMvQixLQUFLLENBQUMsdUJBQXVCLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzVDLENBQUM7YUFBTSxDQUFDO1lBQ04sTUFBTSxJQUFJLEtBQUssQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1FBQzlDLENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNoQixJQUFJLENBQUMsT0FBTyxHQUFHLG1DQUF3QixDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDakUsQ0FBQztJQUNILENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsT0FBTztRQUNMLE9BQU87WUFDTCxHQUFHLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7WUFDNUQsR0FBRyxFQUFFLElBQUksQ0FBQyxhQUFhLEVBQUUsRUFBRSxRQUFRLENBQUMsS0FBSyxDQUFDO1NBQzNDLENBQUM7SUFDSixDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLFVBQVU7UUFDUixNQUFNLFNBQVMsR0FBRyxlQUFLLENBQUMsNEJBQTRCLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3pFLE1BQU0sVUFBVSxHQUFHLElBQUksVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3RDLE1BQU0sU0FBUyxHQUFHLGVBQUssQ0FBQyxhQUFhLENBQUMsU0FBUyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzdELE9BQU8sU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzlCLENBQUM7Q0FDRjtBQTFDRCwwQkEwQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEZWZhdWx0S2V5cyxcbiAgS2V5UGFpck9wdGlvbnMsXG4gIFNlY3AyNTZrMUV4dGVuZGVkS2V5UGFpcixcbiAgaXNTZWVkLFxuICBpc1ByaXZhdGVLZXksXG4gIGlzUHVibGljS2V5LFxufSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgdXRpbHMgZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBiaXAzMiB9IGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tbGliJztcbmltcG9ydCB7IHJhbmRvbUJ5dGVzIH0gZnJvbSAnY3J5cHRvJztcblxuY29uc3QgREVGQVVMVF9TRUVEX1NJWkVfQllURVMgPSAxNjtcblxuLyoqXG4gKiBJQ1Aga2V5cyBhbmQgYWRkcmVzcyBtYW5hZ2VtZW50LlxuICovXG5leHBvcnQgY2xhc3MgS2V5UGFpciBleHRlbmRzIFNlY3AyNTZrMUV4dGVuZGVkS2V5UGFpciB7XG4gIC8qKlxuICAgKiBQdWJsaWMgY29uc3RydWN0b3IuIEJ5IGRlZmF1bHQsIGNyZWF0ZXMgYSBrZXkgcGFpciB3aXRoIGEgcmFuZG9tIG1hc3RlciBzZWVkLlxuICAgKlxuICAgKiBAcGFyYW0geyBLZXlQYWlyT3B0aW9ucyB9IHNvdXJjZSBFaXRoZXIgYSBtYXN0ZXIgc2VlZCwgYSBwcml2YXRlIGtleSAoZXh0ZW5kZWQgb3IgcmF3KSwgb3IgYSBwdWJsaWMga2V5XG4gICAqICAgICAoZXh0ZW5kZWQsIGNvbXByZXNzZWQsIG9yIHVuY29tcHJlc3NlZClcbiAgICovXG4gIGNvbnN0cnVjdG9yKHNvdXJjZT86IEtleVBhaXJPcHRpb25zKSB7XG4gICAgc3VwZXIoc291cmNlKTtcbiAgICBpZiAoIXNvdXJjZSkge1xuICAgICAgY29uc3Qgc2VlZCA9IHJhbmRvbUJ5dGVzKERFRkFVTFRfU0VFRF9TSVpFX0JZVEVTKTtcbiAgICAgIHRoaXMuaGROb2RlID0gYmlwMzIuZnJvbVNlZWQoc2VlZCk7XG4gICAgfSBlbHNlIGlmIChpc1NlZWQoc291cmNlKSkge1xuICAgICAgdGhpcy5oZE5vZGUgPSBiaXAzMi5mcm9tU2VlZChzb3VyY2Uuc2VlZCk7XG4gICAgfSBlbHNlIGlmIChpc1ByaXZhdGVLZXkoc291cmNlKSkge1xuICAgICAgc3VwZXIucmVjb3JkS2V5c0Zyb21Qcml2YXRlS2V5KHNvdXJjZS5wcnYpO1xuICAgIH0gZWxzZSBpZiAoaXNQdWJsaWNLZXkoc291cmNlKSkge1xuICAgICAgc3VwZXIucmVjb3JkS2V5c0Zyb21QdWJsaWNLZXkoc291cmNlLnB1Yik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBrZXkgcGFpciBvcHRpb25zJyk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaGROb2RlKSB7XG4gICAgICB0aGlzLmtleVBhaXIgPSBTZWNwMjU2azFFeHRlbmRlZEtleVBhaXIudG9LZXlQYWlyKHRoaXMuaGROb2RlKTtcbiAgICB9XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgZ2V0S2V5cygpOiBEZWZhdWx0S2V5cyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHB1YjogdGhpcy5nZXRQdWJsaWNLZXkoeyBjb21wcmVzc2VkOiB0cnVlIH0pLnRvU3RyaW5nKCdoZXgnKSxcbiAgICAgIHBydjogdGhpcy5nZXRQcml2YXRlS2V5KCk/LnRvU3RyaW5nKCdoZXgnKSxcbiAgICB9O1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGdldEFkZHJlc3MoKTogc3RyaW5nIHtcbiAgICBjb25zdCBwcmluY2lwYWwgPSB1dGlscy5kZXJpdmVQcmluY2lwYWxGcm9tUHVibGljS2V5KHRoaXMuZ2V0S2V5cygpLnB1Yik7XG4gICAgY29uc3Qgc3ViQWNjb3VudCA9IG5ldyBVaW50OEFycmF5KDMyKTtcbiAgICBjb25zdCBhY2NvdW50SWQgPSB1dGlscy5mcm9tUHJpbmNpcGFsKHByaW5jaXBhbCwgc3ViQWNjb3VudCk7XG4gICAgcmV0dXJuIGFjY291bnRJZC50b1N0cmluZygpO1xuICB9XG59XG4iXX0=
|
package/dist/src/lib/utils.d.ts
CHANGED
|
@@ -1,10 +1,26 @@
|
|
|
1
|
-
import { BaseUtils } from '@bitgo-beta/sdk-core';
|
|
1
|
+
import { BaseUtils, KeyPair } from '@bitgo-beta/sdk-core';
|
|
2
|
+
import { Principal as DfinityPrincipal } from '@dfinity/principal';
|
|
2
3
|
export declare class Utils implements BaseUtils {
|
|
3
4
|
isValidAddress(address: string): boolean;
|
|
4
5
|
isValidTransactionId(txId: string): boolean;
|
|
5
|
-
isValidPublicKey(
|
|
6
|
+
isValidPublicKey(hexStr: string): boolean;
|
|
7
|
+
isValidLength(hexStr: string): boolean;
|
|
8
|
+
isValidHex(hexStr: string): boolean;
|
|
9
|
+
hexToBytes(hex: string): Uint8Array;
|
|
10
|
+
/** @inheritdoc */
|
|
6
11
|
isValidPrivateKey(key: string): boolean;
|
|
12
|
+
isValidKey(key: string): boolean;
|
|
7
13
|
isValidSignature(signature: string): boolean;
|
|
8
14
|
isValidBlockId(hash: string): boolean;
|
|
15
|
+
getHeaders(): Record<string, string>;
|
|
16
|
+
getNetworkIdentifier(): Record<string, string>;
|
|
17
|
+
compressPublicKey(uncompressedKey: string): string;
|
|
18
|
+
getCurveType(): string;
|
|
19
|
+
derivePrincipalFromPublicKey(publicKeyHex: string): DfinityPrincipal;
|
|
20
|
+
fromPrincipal(principal: DfinityPrincipal, subAccount?: Uint8Array): string;
|
|
21
|
+
getAddressFromPublicKey(hexEncodedPublicKey: string): Promise<string>;
|
|
22
|
+
generateKeyPair(seed?: Buffer): KeyPair;
|
|
9
23
|
}
|
|
24
|
+
declare const utils: Utils;
|
|
25
|
+
export default utils;
|
|
10
26
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/lib/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/lib/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,EAAE,SAAS,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAQnE,qBAAa,KAAM,YAAW,SAAS;IACrC,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAIxC,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI3C,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAiBzC,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAItC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAInC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU;IAInC,kBAAkB;IAClB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIvC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAShC,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAI5C,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIrC,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAMpC,oBAAoB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAO9C,iBAAiB,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM;IAgBlD,YAAY,IAAI,MAAM;IAItB,4BAA4B,CAAC,YAAY,EAAE,MAAM,GAAG,gBAAgB;IAepE,aAAa,CAAC,SAAS,EAAE,gBAAgB,EAAE,UAAU,GAAE,UAA+B,GAAG,MAAM;IAiBzF,uBAAuB,CAAC,mBAAmB,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAUpE,eAAe,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO;CAW/C;AAED,QAAA,MAAM,KAAK,OAAc,CAAC;AAC1B,eAAe,KAAK,CAAC"}
|
package/dist/src/lib/utils.js
CHANGED
|
@@ -1,6 +1,49 @@
|
|
|
1
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 () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
2
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
39
|
exports.Utils = void 0;
|
|
40
|
+
const elliptic_1 = __importDefault(require("elliptic"));
|
|
41
|
+
const principal_1 = require("@dfinity/principal");
|
|
42
|
+
const agent = __importStar(require("@dfinity/agent"));
|
|
43
|
+
const crypto_1 = __importDefault(require("crypto"));
|
|
44
|
+
const crc_32_1 = __importDefault(require("crc-32"));
|
|
45
|
+
const keyPair_1 = require("./keyPair");
|
|
46
|
+
const Secp256k1Curve = new elliptic_1.default.ec('secp256k1');
|
|
4
47
|
class Utils {
|
|
5
48
|
isValidAddress(address) {
|
|
6
49
|
throw new Error('Method not implemented.');
|
|
@@ -8,11 +51,39 @@ class Utils {
|
|
|
8
51
|
isValidTransactionId(txId) {
|
|
9
52
|
throw new Error('Method not implemented.');
|
|
10
53
|
}
|
|
11
|
-
isValidPublicKey(
|
|
12
|
-
|
|
54
|
+
isValidPublicKey(hexStr) {
|
|
55
|
+
if (!this.isValidHex(hexStr)) {
|
|
56
|
+
return false;
|
|
57
|
+
}
|
|
58
|
+
if (!this.isValidLength(hexStr)) {
|
|
59
|
+
return false;
|
|
60
|
+
}
|
|
61
|
+
const pubKeyBytes = this.hexToBytes(hexStr);
|
|
62
|
+
const firstByte = pubKeyBytes[0];
|
|
63
|
+
return ((pubKeyBytes.length === 33 && (firstByte === 2 || firstByte === 3)) ||
|
|
64
|
+
(pubKeyBytes.length === 65 && firstByte === 4));
|
|
65
|
+
}
|
|
66
|
+
isValidLength(hexStr) {
|
|
67
|
+
return hexStr.length / 2 === 33 || hexStr.length / 2 === 65;
|
|
68
|
+
}
|
|
69
|
+
isValidHex(hexStr) {
|
|
70
|
+
return /^([0-9a-fA-F]{2})+$/.test(hexStr);
|
|
13
71
|
}
|
|
72
|
+
hexToBytes(hex) {
|
|
73
|
+
return new Uint8Array(Buffer.from(hex, 'hex'));
|
|
74
|
+
}
|
|
75
|
+
/** @inheritdoc */
|
|
14
76
|
isValidPrivateKey(key) {
|
|
15
|
-
|
|
77
|
+
return this.isValidKey(key);
|
|
78
|
+
}
|
|
79
|
+
isValidKey(key) {
|
|
80
|
+
try {
|
|
81
|
+
new keyPair_1.KeyPair({ prv: key });
|
|
82
|
+
return true;
|
|
83
|
+
}
|
|
84
|
+
catch {
|
|
85
|
+
return false;
|
|
86
|
+
}
|
|
16
87
|
}
|
|
17
88
|
isValidSignature(signature) {
|
|
18
89
|
throw new Error('Method not implemented.');
|
|
@@ -20,6 +91,82 @@ class Utils {
|
|
|
20
91
|
isValidBlockId(hash) {
|
|
21
92
|
throw new Error('Method not implemented.');
|
|
22
93
|
}
|
|
94
|
+
getHeaders() {
|
|
95
|
+
return {
|
|
96
|
+
'Content-Type': 'application/json',
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
getNetworkIdentifier() {
|
|
100
|
+
return {
|
|
101
|
+
blockchain: 'Internet Computer',
|
|
102
|
+
network: '00000000000000020101',
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
compressPublicKey(uncompressedKey) {
|
|
106
|
+
if (uncompressedKey.startsWith('02') || uncompressedKey.startsWith('03')) {
|
|
107
|
+
return uncompressedKey;
|
|
108
|
+
}
|
|
109
|
+
if (!uncompressedKey.startsWith('04') || uncompressedKey.length !== 130) {
|
|
110
|
+
throw new Error('Invalid uncompressed public key format.');
|
|
111
|
+
}
|
|
112
|
+
const xHex = uncompressedKey.slice(2, 66);
|
|
113
|
+
const yHex = uncompressedKey.slice(66);
|
|
114
|
+
const y = BigInt(`0x${yHex}`);
|
|
115
|
+
const prefix = y % 2n === 0n ? '02' : '03';
|
|
116
|
+
return prefix + xHex;
|
|
117
|
+
}
|
|
118
|
+
getCurveType() {
|
|
119
|
+
return 'secp256k1';
|
|
120
|
+
}
|
|
121
|
+
derivePrincipalFromPublicKey(publicKeyHex) {
|
|
122
|
+
const publicKeyBuffer = Buffer.from(publicKeyHex, 'hex');
|
|
123
|
+
try {
|
|
124
|
+
const ellipticKey = Secp256k1Curve.keyFromPublic(publicKeyBuffer);
|
|
125
|
+
const uncompressedPublicKeyHex = ellipticKey.getPublic(false, 'hex');
|
|
126
|
+
const derEncodedKey = agent.wrapDER(Buffer.from(uncompressedPublicKeyHex, 'hex'), agent.SECP256K1_OID);
|
|
127
|
+
const principalId = principal_1.Principal.selfAuthenticating(Buffer.from(derEncodedKey));
|
|
128
|
+
const principal = principal_1.Principal.fromUint8Array(principalId.toUint8Array());
|
|
129
|
+
return principal;
|
|
130
|
+
}
|
|
131
|
+
catch (error) {
|
|
132
|
+
throw new Error(`Failed to process the public key: ${error.message}`);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
fromPrincipal(principal, subAccount = new Uint8Array(32)) {
|
|
136
|
+
const ACCOUNT_ID_PREFIX = new Uint8Array([0x0a, ...Buffer.from('account-id')]);
|
|
137
|
+
const principalBytes = principal.toUint8Array();
|
|
138
|
+
const combinedBytes = new Uint8Array(ACCOUNT_ID_PREFIX.length + principalBytes.length + subAccount.length);
|
|
139
|
+
combinedBytes.set(ACCOUNT_ID_PREFIX, 0);
|
|
140
|
+
combinedBytes.set(principalBytes, ACCOUNT_ID_PREFIX.length);
|
|
141
|
+
combinedBytes.set(subAccount, ACCOUNT_ID_PREFIX.length + principalBytes.length);
|
|
142
|
+
const sha224Hash = crypto_1.default.createHash('sha224').update(combinedBytes).digest();
|
|
143
|
+
const checksum = Buffer.alloc(4);
|
|
144
|
+
checksum.writeUInt32BE(crc_32_1.default.buf(sha224Hash) >>> 0, 0);
|
|
145
|
+
const accountIdBytes = Buffer.concat([checksum, sha224Hash]);
|
|
146
|
+
return accountIdBytes.toString('hex');
|
|
147
|
+
}
|
|
148
|
+
async getAddressFromPublicKey(hexEncodedPublicKey) {
|
|
149
|
+
const isKeyValid = this.isValidPublicKey(hexEncodedPublicKey);
|
|
150
|
+
if (!isKeyValid) {
|
|
151
|
+
throw new Error('Public Key is not in a valid Hex Encoded Format');
|
|
152
|
+
}
|
|
153
|
+
const compressedKey = this.compressPublicKey(hexEncodedPublicKey);
|
|
154
|
+
const KeyPair = new keyPair_1.KeyPair({ pub: compressedKey });
|
|
155
|
+
return KeyPair.getAddress();
|
|
156
|
+
}
|
|
157
|
+
generateKeyPair(seed) {
|
|
158
|
+
const keyPair = seed ? new keyPair_1.KeyPair({ seed }) : new keyPair_1.KeyPair();
|
|
159
|
+
const keys = keyPair.getKeys();
|
|
160
|
+
if (!keys.prv) {
|
|
161
|
+
throw new Error('Missing prv in key generation.');
|
|
162
|
+
}
|
|
163
|
+
return {
|
|
164
|
+
pub: keys.pub,
|
|
165
|
+
prv: keys.prv,
|
|
166
|
+
};
|
|
167
|
+
}
|
|
23
168
|
}
|
|
24
169
|
exports.Utils = Utils;
|
|
25
|
-
|
|
170
|
+
const utils = new Utils();
|
|
171
|
+
exports.default = utils;
|
|
172
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLHdEQUFnQztBQUNoQyxrREFBbUU7QUFDbkUsc0RBQXdDO0FBQ3hDLG9EQUE0QjtBQUM1QixvREFBMkI7QUFDM0IsdUNBQWtEO0FBRWxELE1BQU0sY0FBYyxHQUFHLElBQUksa0JBQVEsQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLENBQUM7QUFFcEQsTUFBYSxLQUFLO0lBQ2hCLGNBQWMsQ0FBQyxPQUFlO1FBQzVCLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsb0JBQW9CLENBQUMsSUFBWTtRQUMvQixNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELGdCQUFnQixDQUFDLE1BQWM7UUFDN0IsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUM3QixPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ2hDLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztRQUVELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDNUMsTUFBTSxTQUFTLEdBQUcsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2pDLE9BQU8sQ0FDTCxDQUFDLFdBQVcsQ0FBQyxNQUFNLEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUyxLQUFLLENBQUMsSUFBSSxTQUFTLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDbkUsQ0FBQyxXQUFXLENBQUMsTUFBTSxLQUFLLEVBQUUsSUFBSSxTQUFTLEtB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QztRQUMvQixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ2QsTUFBTSxJQUFJLEtBQUssQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO1FBQ3BELENBQUM7UUFDRCxPQUFPO1lBQ0wsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHO1lBQ2IsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHO1NBQ2QsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQWxKRCxzQkFrSkM7QUFFRCxNQUFNLEtBQUssR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFDO0FBQzFCLGtCQUFlLEtBQUssQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VVdGlscywgS2V5UGFpciB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCBlbGxpcHRpYyBmcm9tICdlbGxpcHRpYyc7XG5pbXBvcnQgeyBQcmluY2lwYWwgYXMgRGZpbml0eVByaW5jaXBhbCB9IGZyb20gJ0BkZmluaXR5L3ByaW5jaXBhbCc7XG5pbXBvcnQgKiBhcyBhZ2VudCBmcm9tICdAZGZpbml0eS9hZ2VudCc7XG5pbXBvcnQgY3J5cHRvIGZyb20gJ2NyeXB0byc7XG5pbXBvcnQgY3JjMzIgZnJvbSAnY3JjLTMyJztcbmltcG9ydCB7IEtleVBhaXIgYXMgSWNwS2V5UGFpciB9IGZyb20gJy4va2V5UGFpcic7XG5cbmNvbnN0IFNlY3AyNTZrMUN1cnZlID0gbmV3IGVsbGlwdGljLmVjKCdzZWNwMjU2azEnKTtcblxuZXhwb3J0IGNsYXNzIFV0aWxzIGltcGxlbWVudHMgQmFzZVV0aWxzIHtcbiAgaXNWYWxpZEFkZHJlc3MoYWRkcmVzczogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNZXRob2Qgbm90IGltcGxlbWVudGVkLicpO1xuICB9XG5cbiAgaXNWYWxpZFRyYW5zYWN0aW9uSWQodHhJZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNZXRob2Qgbm90IGltcGxlbWVudGVkLicpO1xuICB9XG5cbiAgaXNWYWxpZFB1YmxpY0tleShoZXhTdHI6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkSGV4KGhleFN0cikpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuaXNWYWxpZExlbmd0aChoZXhTdHIpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3QgcHViS2V5Qnl0ZXMgPSB0aGlzLmhleFRvQnl0ZXMoaGV4U3RyKTtcbiAgICBjb25zdCBmaXJzdEJ5dGUgPSBwdWJLZXlCeXRlc1swXTtcbiAgICByZXR1cm4gKFxuICAgICAgKHB1YktleUJ5dGVzLmxlbmd0aCA9PT0gMzMgJiYgKGZpcnN0Qnl0ZSA9PT0gMiB8fCBmaXJzdEJ5dGUgPT09IDMpKSB8fFxuICAgICAgKHB1YktleUJ5dGVzLmxlbmd0aCA9PT0gNjUgJiYgZmlyc3RCeXRlID09PSA0KVxuICAgICk7XG4gIH1cblxuICBpc1ZhbGlkTGVuZ3RoKGhleFN0cjogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGhleFN0ci5sZW5ndGggLyAyID09PSAzMyB8fCBoZXhTdHIubGVuZ3RoIC8gMiA9PT0gNjU7XG4gIH1cblxuICBpc1ZhbGlkSGV4KGhleFN0cjogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIC9eKFswLTlhLWZBLUZdezJ9KSskLy50ZXN0KGhleFN0cik7XG4gIH1cblxuICBoZXhUb0J5dGVzKGhleDogc3RyaW5nKTogVWludDhBcnJheSB7XG4gICAgcmV0dXJuIG5ldyBVaW50OEFycmF5KEJ1ZmZlci5mcm9tKGhleCwgJ2hleCcpKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBpc1ZhbGlkUHJpdmF0ZUtleShrZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWRLZXkoa2V5KTtcbiAgfVxuXG4gIGlzVmFsaWRLZXkoa2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICB0cnkge1xuICAgICAgbmV3IEljcEtleVBhaXIoeyBwcnY6IGtleSB9KTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gY2F0Y2gge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIGlzVmFsaWRTaWduYXR1cmUoc2lnbmF0dXJlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgaW1wbGVtZW50ZWQuJyk7XG4gIH1cblxuICBpc1ZhbGlkQmxvY2tJZChoYXNoOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgaW1wbGVtZW50ZWQuJyk7XG4gIH1cblxuICBnZXRIZWFkZXJzKCk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4ge1xuICAgIHJldHVybiB7XG4gICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgIH07XG4gIH1cblxuICBnZXROZXR3b3JrSWRlbnRpZmllcigpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICByZXR1cm4ge1xuICAgICAgYmxvY2tjaGFpbjogJ0ludGVybmV0IENvbXB1dGVyJyxcbiAgICAgIG5ldHdvcms6ICcwMDAwMDAwMDAwMDAwMDAyMDEwMScsXG4gICAgfTtcbiAgfVxuXG4gIGNvbXByZXNzUHVibGljS2V5KHVuY29tcHJlc3NlZEtleTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAodW5jb21wcmVzc2VkS2V5LnN0YXJ0c1dpdGgoJzAyJykgfHwgdW5jb21wcmVzc2VkS2V5LnN0YXJ0c1dpdGgoJzAzJykpIHtcbiAgICAgIHJldHVybiB1bmNvbXByZXNzZWRLZXk7XG4gICAgfVxuICAgIGlmICghdW5jb21wcmVzc2VkS2V5LnN0YXJ0c1dpdGgoJzA0JykgfHwgdW5jb21wcmVzc2VkS2V5Lmxlbmd0aCAhPT0gMTMwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgdW5jb21wcmVzc2VkIHB1YmxpYyBrZXkgZm9ybWF0LicpO1xuICAgIH1cblxuICAgIGNvbnN0IHhIZXggPSB1bmNvbXByZXNzZWRLZXkuc2xpY2UoMiwgNjYpO1xuICAgIGNvbnN0IHlIZXggPSB1bmNvbXByZXNzZWRLZXkuc2xpY2UoNjYpO1xuICAgIGNvbnN0IHkgPSBCaWdJbnQoYDB4JHt5SGV4fWApO1xuICAgIGNvbnN0IHByZWZpeCA9IHkgJSAybiA9PT0gMG4gPyAnMDInIDogJzAzJztcblxuICAgIHJldHVybiBwcmVmaXggKyB4SGV4O1xuICB9XG5cbiAgZ2V0Q3VydmVUeXBlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuICdzZWNwMjU2azEnO1xuICB9XG5cbiAgZGVyaXZlUHJpbmNpcGFsRnJvbVB1YmxpY0tleShwdWJsaWNLZXlIZXg6IHN0cmluZyk6IERmaW5pdHlQcmluY2lwYWwge1xuICAgIGNvbnN0IHB1YmxpY0tleUJ1ZmZlciA9IEJ1ZmZlci5mcm9tKHB1YmxpY0tleUhleCwgJ2hleCcpO1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGVsbGlwdGljS2V5ID0gU2VjcDI1NmsxQ3VydmUua2V5RnJvbVB1YmxpYyhwdWJsaWNLZXlCdWZmZXIpO1xuICAgICAgY29uc3QgdW5jb21wcmVzc2VkUHVibGljS2V5SGV4ID0gZWxsaXB0aWNLZXkuZ2V0UHVibGljKGZhbHNlLCAnaGV4Jyk7XG4gICAgICBjb25zdCBkZXJFbmNvZGVkS2V5ID0gYWdlbnQud3JhcERFUihCdWZmZXIuZnJvbSh1bmNvbXByZXNzZWRQdWJsaWNLZXlIZXgsICdoZXgnKSwgYWdlbnQuU0VDUDI1NksxX09JRCk7XG4gICAgICBjb25zdCBwcmluY2lwYWxJZCA9IERmaW5pdHlQcmluY2lwYWwuc2VsZkF1dGhlbnRpY2F0aW5nKEJ1ZmZlci5mcm9tKGRlckVuY29kZWRLZXkpKTtcbiAgICAgIGNvbnN0IHByaW5jaXBhbCA9IERmaW5pdHlQcmluY2lwYWwuZnJvbVVpbnQ4QXJyYXkocHJpbmNpcGFsSWQudG9VaW50OEFycmF5KCkpO1xuICAgICAgcmV0dXJuIHByaW5jaXBhbDtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgdG8gcHJvY2VzcyB0aGUgcHVibGljIGtleTogJHtlcnJvci5tZXNzYWdlfWApO1xuICAgIH1cbiAgfVxuXG4gIGZyb21QcmluY2lwYWwocHJpbmNpcGFsOiBEZmluaXR5UHJpbmNpcGFsLCBzdWJBY2NvdW50OiBVaW50OEFycmF5ID0gbmV3IFVpbnQ4QXJyYXkoMzIpKTogc3RyaW5nIHtcbiAgICBjb25zdCBBQ0NPVU5UX0lEX1BSRUZJWCA9IG5ldyBVaW50OEFycmF5KFsweDBhLCAuLi5CdWZmZXIuZnJvbSgnYWNjb3VudC1pZCcpXSk7XG4gICAgY29uc3QgcHJpbmNpcGFsQnl0ZXMgPSBwcmluY2lwYWwudG9VaW50OEFycmF5KCk7XG4gICAgY29uc3QgY29tYmluZWRCeXRlcyA9IG5ldyBVaW50OEFycmF5KEFDQ09VTlRfSURfUFJFRklYLmxlbmd0aCArIHByaW5jaXBhbEJ5dGVzLmxlbmd0aCArIHN1YkFjY291bnQubGVuZ3RoKTtcblxuICAgIGNvbWJpbmVkQnl0ZXMuc2V0KEFDQ09VTlRfSURfUFJFRklYLCAwKTtcbiAgICBjb21iaW5lZEJ5dGVzLnNldChwcmluY2lwYWxCeXRlcywgQUNDT1VOVF9JRF9QUkVGSVgubGVuZ3RoKTtcbiAgICBjb21iaW5lZEJ5dGVzLnNldChzdWJBY2NvdW50LCBBQ0NPVU5UX0lEX1BSRUZJWC5sZW5ndGggKyBwcmluY2lwYWxCeXRlcy5sZW5ndGgpO1xuXG4gICAgY29uc3Qgc2hhMjI0SGFzaCA9IGNyeXB0by5jcmVhdGVIYXNoKCdzaGEyMjQnKS51cGRhdGUoY29tYmluZWRCeXRlcykuZGlnZXN0KCk7XG4gICAgY29uc3QgY2hlY2tzdW0gPSBCdWZmZXIuYWxsb2MoNCk7XG4gICAgY2hlY2tzdW0ud3JpdGVVSW50MzJCRShjcmMzMi5idWYoc2hhMjI0SGFzaCkgPj4+IDAsIDApO1xuXG4gICAgY29uc3QgYWNjb3VudElkQnl0ZXMgPSBCdWZmZXIuY29uY2F0KFtjaGVja3N1bSwgc2hhMjI0SGFzaF0pO1xuICAgIHJldHVybiBhY2NvdW50SWRCeXRlcy50b1N0cmluZygnaGV4Jyk7XG4gIH1cblxuICBhc3luYyBnZXRBZGRyZXNzRnJvbVB1YmxpY0tleShoZXhFbmNvZGVkUHVibGljS2V5OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IGlzS2V5VmFsaWQgPSB0aGlzLmlzVmFsaWRQdWJsaWNLZXkoaGV4RW5jb2RlZFB1YmxpY0tleSk7XG4gICAgaWYgKCFpc0tleVZhbGlkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1B1YmxpYyBLZXkgaXMgbm90IGluIGEgdmFsaWQgSGV4IEVuY29kZWQgRm9ybWF0Jyk7XG4gICAgfVxuICAgIGNvbnN0IGNvbXByZXNzZWRLZXkgPSB0aGlzLmNvbXByZXNzUHVibGljS2V5KGhleEVuY29kZWRQdWJsaWNLZXkpO1xuICAgIGNvbnN0IEtleVBhaXIgPSBuZXcgSWNwS2V5UGFpcih7IHB1YjogY29tcHJlc3NlZEtleSB9KTtcbiAgICByZXR1cm4gS2V5UGFpci5nZXRBZGRyZXNzKCk7XG4gIH1cblxuICBwdWJsaWMgZ2VuZXJhdGVLZXlQYWlyKHNlZWQ/OiBCdWZmZXIpOiBLZXlQYWlyIHtcbiAgICBjb25zdCBrZXlQYWlyID0gc2VlZCA/IG5ldyBJY3BLZXlQYWlyKHsgc2VlZCB9KSA6IG5ldyBJY3BLZXlQYWlyKCk7XG4gICAgY29uc3Qga2V5cyA9IGtleVBhaXIuZ2V0S2V5cygpO1xuICAgIGlmICgha2V5cy5wcnYpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTWlzc2luZyBwcnYgaW4ga2V5IGdlbmVyYXRpb24uJyk7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICBwdWI6IGtleXMucHViLFxuICAgICAgcHJ2OiBrZXlzLnBydixcbiAgICB9O1xuICB9XG59XG5cbmNvbnN0IHV0aWxzID0gbmV3IFV0aWxzKCk7XG5leHBvcnQgZGVmYXVsdCB1dGlscztcbiJdfQ==
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bitgo-beta/sdk-coin-icp",
|
|
3
|
-
"version": "1.0.1-beta.
|
|
3
|
+
"version": "1.0.1-beta.71",
|
|
4
4
|
"description": "BitGo SDK coin library for Internet Computer",
|
|
5
5
|
"main": "./dist/src/index.js",
|
|
6
6
|
"types": "./dist/src/index.d.ts",
|
|
@@ -40,12 +40,18 @@
|
|
|
40
40
|
]
|
|
41
41
|
},
|
|
42
42
|
"dependencies": {
|
|
43
|
-
"@bitgo-beta/sdk-core": "8.2.1-beta.
|
|
44
|
-
"@bitgo-beta/statics": "15.1.1-beta.
|
|
43
|
+
"@bitgo-beta/sdk-core": "8.2.1-beta.719",
|
|
44
|
+
"@bitgo-beta/statics": "15.1.1-beta.722",
|
|
45
|
+
"@bitgo-beta/utxo-lib": "8.0.3-beta.720",
|
|
46
|
+
"@dfinity/agent": "^2.2.0",
|
|
47
|
+
"@dfinity/candid": "^2.2.0",
|
|
48
|
+
"@dfinity/principal": "^2.2.0",
|
|
49
|
+
"crc-32": "^1.2.2",
|
|
50
|
+
"elliptic": "^6.6.1"
|
|
45
51
|
},
|
|
46
52
|
"devDependencies": {
|
|
47
|
-
"@bitgo-beta/sdk-api": "1.10.1-beta.
|
|
48
|
-
"@bitgo-beta/sdk-test": "^8.0.
|
|
53
|
+
"@bitgo-beta/sdk-api": "1.10.1-beta.718",
|
|
54
|
+
"@bitgo-beta/sdk-test": "^8.0.71"
|
|
49
55
|
},
|
|
50
|
-
"gitHead": "
|
|
56
|
+
"gitHead": "964bd95744d95df5cf9f54bd8d8238cfec0107ea"
|
|
51
57
|
}
|