@bitgo-beta/sdk-coin-xtz 1.4.3-alpha.27 → 1.4.3-alpha.270
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 +489 -0
- package/dist/src/index.js +23 -9
- package/dist/src/lib/iface.d.ts +0 -1
- package/dist/src/lib/iface.d.ts.map +1 -1
- package/dist/src/lib/index.js +23 -9
- package/dist/src/lib/keyPair.js +32 -18
- package/dist/src/lib/multisigUtils.js +36 -23
- package/dist/src/lib/transaction.js +28 -14
- package/dist/src/lib/transactionBuilder.js +12 -12
- package/dist/src/lib/transferBuilder.js +1 -1
- package/dist/src/lib/utils.d.ts +26 -27
- package/dist/src/lib/utils.d.ts.map +1 -1
- package/dist/src/lib/utils.js +47 -33
- package/dist/src/xtz.d.ts +0 -2
- package/dist/src/xtz.d.ts.map +1 -1
- package/dist/src/xtz.js +7 -4
- package/package.json +10 -10
package/dist/src/lib/keyPair.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
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);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -11,13 +15,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
11
15
|
}) : function(o, v) {
|
|
12
16
|
o["default"] = v;
|
|
13
17
|
});
|
|
14
|
-
var __importStar = (this && this.__importStar) || function (
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
};
|
|
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
|
+
})();
|
|
21
35
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
22
36
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
23
37
|
};
|
|
@@ -42,16 +56,16 @@ class KeyPair extends sdk_core_1.Secp256k1ExtendedKeyPair {
|
|
|
42
56
|
constructor(source) {
|
|
43
57
|
super(source);
|
|
44
58
|
if (!source) {
|
|
45
|
-
const seed = crypto_1.randomBytes(DEFAULT_SEED_SIZE_BYTES);
|
|
59
|
+
const seed = (0, crypto_1.randomBytes)(DEFAULT_SEED_SIZE_BYTES);
|
|
46
60
|
this.hdNode = utxo_lib_1.bip32.fromSeed(seed);
|
|
47
61
|
}
|
|
48
|
-
else if (sdk_core_1.isSeed(source)) {
|
|
62
|
+
else if ((0, sdk_core_1.isSeed)(source)) {
|
|
49
63
|
this.hdNode = utxo_lib_1.bip32.fromSeed(source.seed);
|
|
50
64
|
}
|
|
51
|
-
else if (sdk_core_1.isPrivateKey(source)) {
|
|
65
|
+
else if ((0, sdk_core_1.isPrivateKey)(source)) {
|
|
52
66
|
this.recordKeysFromPrivateKey(source.prv);
|
|
53
67
|
}
|
|
54
|
-
else if (sdk_core_1.isPublicKey(source)) {
|
|
68
|
+
else if ((0, sdk_core_1.isPublicKey)(source)) {
|
|
55
69
|
this.recordKeysFromPublicKey(source.pub);
|
|
56
70
|
}
|
|
57
71
|
else {
|
|
@@ -68,10 +82,10 @@ class KeyPair extends sdk_core_1.Secp256k1ExtendedKeyPair {
|
|
|
68
82
|
* @param {string} prv An extended or raw private key
|
|
69
83
|
*/
|
|
70
84
|
recordKeysFromPrivateKey(prv) {
|
|
71
|
-
if (sdk_core_1.isValidXprv(prv)) {
|
|
85
|
+
if ((0, sdk_core_1.isValidXprv)(prv)) {
|
|
72
86
|
this.hdNode = utxo_lib_1.bip32.fromBase58(prv);
|
|
73
87
|
}
|
|
74
|
-
else if (sdk_core_1.isValidPrv(prv)) {
|
|
88
|
+
else if ((0, sdk_core_1.isValidPrv)(prv)) {
|
|
75
89
|
// Cannot create the HD node without the chain code, so create a regular Key Chain
|
|
76
90
|
this.keyPair = utxo_lib_1.ECPair.fromPrivateKey(Buffer.from(prv, 'hex'));
|
|
77
91
|
}
|
|
@@ -89,10 +103,10 @@ class KeyPair extends sdk_core_1.Secp256k1ExtendedKeyPair {
|
|
|
89
103
|
* @param {string} pub - An extended, compressed, or uncompressed public key
|
|
90
104
|
*/
|
|
91
105
|
recordKeysFromPublicKey(pub) {
|
|
92
|
-
if (sdk_core_1.isValidXpub(pub)) {
|
|
106
|
+
if ((0, sdk_core_1.isValidXpub)(pub)) {
|
|
93
107
|
this.hdNode = utxo_lib_1.bip32.fromBase58(pub);
|
|
94
108
|
}
|
|
95
|
-
else if (sdk_core_1.isValidPub(pub)) {
|
|
109
|
+
else if ((0, sdk_core_1.isValidPub)(pub)) {
|
|
96
110
|
// Cannot create an HD node without the chain code, so create a regular Key Chain
|
|
97
111
|
this.keyPair = utxo_lib_1.ECPair.fromPublicKey(Buffer.from(pub, 'hex'));
|
|
98
112
|
}
|
|
@@ -127,9 +141,9 @@ class KeyPair extends sdk_core_1.Secp256k1ExtendedKeyPair {
|
|
|
127
141
|
getAddress() {
|
|
128
142
|
const pub = this.getPublicKey({ compressed: true });
|
|
129
143
|
const out = Buffer.alloc(20);
|
|
130
|
-
const b2b = blake2b_1.default(out.length).update(pub).digest(out);
|
|
144
|
+
const b2b = (0, blake2b_1.default)(out.length).update(pub).digest(out);
|
|
131
145
|
return Utils.base58encode(Utils.hashTypes.tz2.prefix, b2b);
|
|
132
146
|
}
|
|
133
147
|
}
|
|
134
148
|
exports.KeyPair = KeyPair;
|
|
135
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
149
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5UGFpci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIva2V5UGFpci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxtQ0FBcUM7QUFDckMsa0VBQTBDO0FBQzFDLG1EQUFxRDtBQUNyRCxtREFXOEI7QUFDOUIsK0NBQWlDO0FBRWpDLE1BQU0sdUJBQXVCLEdBQUcsRUFBRSxDQUFDO0FBRW5DOztHQUVHO0FBQ0gsTUFBYSxPQUFRLFNBQVEsbUNBQXdCO0lBQ25EOzs7OztPQUtHO0lBQ0gsWUFBWSxNQUF1QjtRQUNqQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDZCxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDWixNQUFNLElBQUksR0FBRyxJQUFBLG9CQUFXLEVBQUMsdUJBQXVCLENBQUMsQ0FBQztZQUNsRCxJQUFJLENBQUMsTUFBTSxHQUFHLGdCQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3JDLENBQUM7YUFBTSxJQUFJLElBQUEsaUJBQU0sRUFBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQzFCLElBQUksQ0FBQyxNQUFNLEdBQUcsZ0JBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVDLENBQUM7YUFBTSxJQUFJLElBQUEsdUJBQVksRUFBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ2hDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDNUMsQ0FBQzthQUFNLElBQUksSUFBQSxzQkFBVyxFQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDL0IsSUFBSSxDQUFDLHVCQUF1QixDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMzQyxDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sSUFBSSxLQUFLLENBQUMsMEJBQTBCLENB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VTtRQUNSLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUNwRCxNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzdCLE1BQU0sR0FBRyxHQUFHLElBQUEsaUJBQU8sRUFBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN4RCxPQUFPLEtBQUssQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQzdELENBQUM7Q0FDRjtBQTdGRCwwQkE2RkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByYW5kb21CeXRlcyB9IGZyb20gJ2NyeXB0byc7XG5pbXBvcnQgYmxha2UyYiBmcm9tICdAYml0Z28tYmV0YS9ibGFrZTJiJztcbmltcG9ydCB7IGJpcDMyLCBFQ1BhaXIgfSBmcm9tICdAYml0Z28tYmV0YS91dHhvLWxpYic7XG5pbXBvcnQge1xuICBEZWZhdWx0S2V5cyxcbiAgaXNQcml2YXRlS2V5LFxuICBpc1B1YmxpY0tleSxcbiAgaXNTZWVkLFxuICBpc1ZhbGlkUHJ2LFxuICBpc1ZhbGlkUHViLFxuICBpc1ZhbGlkWHBydixcbiAgaXNWYWxpZFhwdWIsXG4gIEtleVBhaXJPcHRpb25zLFxuICBTZWNwMjU2azFFeHRlbmRlZEtleVBhaXIsXG59IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCAqIGFzIFV0aWxzIGZyb20gJy4vdXRpbHMnO1xuXG5jb25zdCBERUZBVUxUX1NFRURfU0laRV9CWVRFUyA9IDE2O1xuXG4vKipcbiAqIFRlem9zIGtleXMgYW5kIGFkZHJlc3MgbWFuYWdlbWVudC5cbiAqL1xuZXhwb3J0IGNsYXNzIEtleVBhaXIgZXh0ZW5kcyBTZWNwMjU2azFFeHRlbmRlZEtleVBhaXIge1xuICAvKipcbiAgICogUHVibGljIGNvbnN0cnVjdG9yLiBCeSBkZWZhdWx0LCBjcmVhdGVzIGEga2V5IHBhaXIgd2l0aCBhIHJhbmRvbSBtYXN0ZXIgc2VlZC5cbiAgICpcbiAgICogQHBhcmFtIHtLZXlQYWlyT3B0aW9uc30gc291cmNlIEVpdGhlciBhIG1hc3RlciBzZWVkLCBhIHByaXZhdGUga2V5IChleHRlbmRlZCBvciByYXcpLCBvciBhIHB1YmxpYyBrZXlcbiAgICogICAgIChleHRlbmRlZCwgY29tcHJlc3NlZCwgb3IgdW5jb21wcmVzc2VkKVxuICAgKi9cbiAgY29uc3RydWN0b3Ioc291cmNlPzogS2V5UGFpck9wdGlvbnMpIHtcbiAgICBzdXBlcihzb3VyY2UpO1xuICAgIGlmICghc291cmNlKSB7XG4gICAgICBjb25zdCBzZWVkID0gcmFuZG9tQnl0ZXMoREVGQVVMVF9TRUVEX1NJWkVfQllURVMpO1xuICAgICAgdGhpcy5oZE5vZGUgPSBiaXAzMi5mcm9tU2VlZChzZWVkKTtcbiAgICB9IGVsc2UgaWYgKGlzU2VlZChzb3VyY2UpKSB7XG4gICAgICB0aGlzLmhkTm9kZSA9IGJpcDMyLmZyb21TZWVkKHNvdXJjZS5zZWVkKTtcbiAgICB9IGVsc2UgaWYgKGlzUHJpdmF0ZUtleShzb3VyY2UpKSB7XG4gICAgICB0aGlzLnJlY29yZEtleXNGcm9tUHJpdmF0ZUtleShzb3VyY2UucHJ2KTtcbiAgICB9IGVsc2UgaWYgKGlzUHVibGljS2V5KHNvdXJjZSkpIHtcbiAgICAgIHRoaXMucmVjb3JkS2V5c0Zyb21QdWJsaWNLZXkoc291cmNlLnB1Yik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBrZXkgcGFpciBvcHRpb25zJyk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaGROb2RlKSB7XG4gICAgICB0aGlzLmtleVBhaXIgPSBTZWNwMjU2azFFeHRlbmRlZEtleVBhaXIudG9LZXlQYWlyKHRoaXMuaGROb2RlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQnVpbGQgYSBIaWVyYXJjaGljYWwgRGV0ZXJtaW5pc3RpYyBub2RlIG9yIGFuIEVDUGFpciBmcm9tIGEgcHJpdmF0ZSBrZXkuXG4gICAqIFNwZWNpZmljIFRlem9zIGltcGxlbWVudGF0aW9uXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBwcnYgQW4gZXh0ZW5kZWQgb3IgcmF3IHByaXZhdGUga2V5XG4gICAqL1xuICByZWNvcmRLZXlzRnJvbVByaXZhdGVLZXkocHJ2OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAoaXNWYWxpZFhwcnYocHJ2KSkge1xuICAgICAgdGhpcy5oZE5vZGUgPSBiaXAzMi5mcm9tQmFzZTU4KHBydik7XG4gICAgfSBlbHNlIGlmIChpc1ZhbGlkUHJ2KHBydikpIHtcbiAgICAgIC8vIENhbm5vdCBjcmVhdGUgdGhlIEhEIG5vZGUgd2l0aG91dCB0aGUgY2hhaW4gY29kZSwgc28gY3JlYXRlIGEgcmVndWxhciBLZXkgQ2hhaW5cbiAgICAgIHRoaXMua2V5UGFpciA9IEVDUGFpci5mcm9tUHJpdmF0ZUtleShCdWZmZXIuZnJvbShwcnYsICdoZXgnKSk7XG4gICAgfSBlbHNlIGlmIChVdGlscy5pc1ZhbGlkS2V5KHBydiwgVXRpbHMuaGFzaFR5cGVzLnNwc2spKSB7XG4gICAgICB0aGlzLmtleVBhaXIgPSBFQ1BhaXIuZnJvbVByaXZhdGVLZXkoVXRpbHMuZGVjb2RlS2V5KHBydiwgVXRpbHMuaGFzaFR5cGVzLnNwc2spKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbnN1cHBvcnRlZCBwcml2YXRlIGtleScpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZCBhIEhpZXJhcmNoaWNhbCBEZXRlcm1pbmlzdGljIG5vZGUgb3IgYW4gRUNQYWlyIGZyb20gYSBwdWJsaWMga2V5LlxuICAgKiBTcGVjaWZpYyBUZXpvcyBpbXBsZW1lbnRhdGlvblxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gcHViIC0gQW4gZXh0ZW5kZWQsIGNvbXByZXNzZWQsIG9yIHVuY29tcHJlc3NlZCBwdWJsaWMga2V5XG4gICAqL1xuICByZWNvcmRLZXlzRnJvbVB1YmxpY0tleShwdWI6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmIChpc1ZhbGlkWHB1YihwdWIpKSB7XG4gICAgICB0aGlzLmhkTm9kZSA9IGJpcDMyLmZyb21CYXNlNTgocHViKTtcbiAgICB9IGVsc2UgaWYgKGlzVmFsaWRQdWIocHViKSkge1xuICAgICAgLy8gQ2Fubm90IGNyZWF0ZSBhbiBIRCBub2RlIHdpdGhvdXQgdGhlIGNoYWluIGNvZGUsIHNvIGNyZWF0ZSBhIHJlZ3VsYXIgS2V5IENoYWluXG4gICAgICB0aGlzLmtleVBhaXIgPSBFQ1BhaXIuZnJvbVB1YmxpY0tleShCdWZmZXIuZnJvbShwdWIsICdoZXgnKSk7XG4gICAgfSBlbHNlIGlmIChVdGlscy5pc1ZhbGlkS2V5KHB1YiwgVXRpbHMuaGFzaFR5cGVzLnNwcGspKSB7XG4gICAgICB0aGlzLmtleVBhaXIgPSBFQ1BhaXIuZnJvbVB1YmxpY0tleShVdGlscy5kZWNvZGVLZXkocHViLCBVdGlscy5oYXNoVHlwZXMuc3BwaykpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Vuc3VwcG9ydGVkIHB1YmxpYyBrZXk6ICcgKyBwdWIpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gVGV6b3MgZGVmYXVsdCBrZXlzIHdpdGggdGhlIHJlc3BlY3RpdmUgcHJlZml4ZXNcbiAgICpcbiAgICogQHJldHVybnMge0RlZmF1bHRLZXlzfSBUaGUga2V5cyBpbiB0aGUgcHJvdG9jb2wgZGVmYXVsdCBrZXkgZm9ybWF0XG4gICAqL1xuICBnZXRLZXlzKCk6IERlZmF1bHRLZXlzIHtcbiAgICAvLyBBbHdheXMgdXNlIHRoZSBjb21wcmVzc2VkIHZlcnNpb24gdG8gYmUgY29uc2lzdGVudFxuICAgIGNvbnN0IHJlc3VsdDogRGVmYXVsdEtleXMgPSB7XG4gICAgICBwdWI6IFV0aWxzLmJhc2U1OGVuY29kZShVdGlscy5oYXNoVHlwZXMuc3Bway5wcmVmaXgsIHRoaXMuZ2V0UHVibGljS2V5KHsgY29tcHJlc3NlZDogdHJ1ZSB9KSksXG4gICAgfTtcbiAgICBjb25zdCBwcnZCdWZmZXI6IEJ1ZmZlciB8IHVuZGVmaW5lZCA9IHRoaXMuZ2V0UHJpdmF0ZUtleSgpO1xuICAgIGlmIChwcnZCdWZmZXIpIHtcbiAgICAgIHJlc3VsdC5wcnYgPSBVdGlscy5iYXNlNThlbmNvZGUoVXRpbHMuaGFzaFR5cGVzLnNwc2sucHJlZml4LCBwcnZCdWZmZXIpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBhIHB1YmxpYyBhZGRyZXNzLlxuICAgKlxuICAgKiBAcmV0dXJucyB7c3RyaW5nfSBUaGUgcHVibGljIGFkZHJlc3NcbiAgICovXG4gIGdldEFkZHJlc3MoKTogc3RyaW5nIHtcbiAgICBjb25zdCBwdWIgPSB0aGlzLmdldFB1YmxpY0tleSh7IGNvbXByZXNzZWQ6IHRydWUgfSk7XG4gICAgY29uc3Qgb3V0ID0gQnVmZmVyLmFsbG9jKDIwKTtcbiAgICBjb25zdCBiMmIgPSBibGFrZTJiKG91dC5sZW5ndGgpLnVwZGF0ZShwdWIpLmRpZ2VzdChvdXQpO1xuICAgIHJldHVybiBVdGlscy5iYXNlNThlbmNvZGUoVXRpbHMuaGFzaFR5cGVzLnR6Mi5wcmVmaXgsIGIyYik7XG4gIH1cbn1cbiJdfQ==
|