@bitgo-beta/utxo-lib 8.0.3-beta.466 → 8.0.3-beta.468

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.
@@ -14,4 +14,13 @@ export declare function privateKeyBufferToECPair(buffer: Buffer, network?: Netwo
14
14
  * @return Buffer 32 bytes
15
15
  */
16
16
  export declare function privateKeyBufferFromECPair(ecPair: ECPairInterface): Buffer;
17
+ /**
18
+ * Converts an extended key from one network to another by updating its version bytes.
19
+ *
20
+ * Handles both public and private keys, allowing conversion between networks like
21
+ * Bitcoin Mainnet and Testnet.
22
+ *
23
+ * @returns The extended key with the updated network version.
24
+ */
25
+ export declare function convertExtendedKeyNetwork(extendedKey: string, fromNetwork: Network, targetNetwork: Network): string;
17
26
  //# sourceMappingURL=keyutil.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"keyutil.d.ts","sourceRoot":"","sources":["../../../src/bitgo/keyutil.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAGtC;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,eAAe,CAM3F;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,CAc1E"}
1
+ {"version":3,"file":"keyutil.d.ts","sourceRoot":"","sources":["../../../src/bitgo/keyutil.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAEzC,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAGtC;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,eAAe,CAM3F;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,CAc1E;AAED;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,GAAG,MAAM,CAWnH"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.privateKeyBufferFromECPair = exports.privateKeyBufferToECPair = void 0;
3
+ exports.convertExtendedKeyNetwork = exports.privateKeyBufferFromECPair = exports.privateKeyBufferToECPair = void 0;
4
+ const bs58check = require("bs58check");
4
5
  const noble_ecc_1 = require("../noble_ecc");
5
6
  /**
6
7
  * Create an ECPair from the raw private key bytes
@@ -34,4 +35,25 @@ function privateKeyBufferFromECPair(ecPair) {
34
35
  return privkey;
35
36
  }
36
37
  exports.privateKeyBufferFromECPair = privateKeyBufferFromECPair;
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5dXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iaXRnby9rZXl1dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBLDRDQUFzQztBQUV0Qzs7Ozs7R0FLRztBQUNILFNBQWdCLHdCQUF3QixDQUFDLE1BQWMsRUFBRSxPQUFpQjtJQUN4RSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxNQUFNLENBQUMsTUFBTSxLQUFLLEVBQUUsRUFBRTtRQUNwRCxNQUFNLElBQUksS0FBSyxDQUFDLDRCQUE0QixDQUFDLENBQUM7S0FDL0M7SUFFRCxPQUFPLGtCQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ3ZDLENBQUM7QUFORCw0REFNQztBQUVEOzs7O0dBSUc7QUFDSCxTQUFnQiwwQkFBMEIsQ0FBQyxNQUF1QjtJQUNoRSxJQUFJLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRTtRQUN4QyxNQUFNLElBQUksU0FBUyxDQUFDLHlCQUF5QixDQUFDLENBQUM7S0FDaEQ7SUFFRCxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDO0lBQ2xDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQzdCLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQztLQUM1QztJQUNELElBQUksT0FBTyxDQUFDLE1BQU0sS0FBSyxFQUFFLEVBQUU7UUFDekIsTUFBTSxJQUFJLEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO0tBQzlDO0lBRUQsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQztBQWRELGdFQWNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRUNQYWlySW50ZXJmYWNlIH0gZnJvbSAnZWNwYWlyJztcbmltcG9ydCB7IE5ldHdvcmsgfSBmcm9tICcuLi9uZXR3b3Jrcyc7XG5pbXBvcnQgeyBFQ1BhaXIgfSBmcm9tICcuLi9ub2JsZV9lY2MnO1xuXG4vKipcbiAqIENyZWF0ZSBhbiBFQ1BhaXIgZnJvbSB0aGUgcmF3IHByaXZhdGUga2V5IGJ5dGVzXG4gKiBAcGFyYW0ge0J1ZmZlcn0gYnVmZmVyIC0gUHJpdmF0ZSBrZXkgZm9yIHRoZSBFQ1BhaXIuIE11c3QgYmUgZXhhY3RseSAzMiBieXRlcy5cbiAqIEBwYXJhbSB7T2JqZWN0fSBbbmV0d29ya10gLSBOZXR3b3JrIGZvciB0aGUgRUNQYWlyLiBEZWZhdWx0cyB0byBiaXRjb2luLlxuICogQHJldHVybiB7RUNQYWlyfVxuICovXG5leHBvcnQgZnVuY3Rpb24gcHJpdmF0ZUtleUJ1ZmZlclRvRUNQYWlyKGJ1ZmZlcjogQnVmZmVyLCBuZXR3b3JrPzogTmV0d29yayk6IEVDUGFpckludGVyZmFjZSB7XG4gIGlmICghQnVmZmVyLmlzQnVmZmVyKGJ1ZmZlcikgfHwgYnVmZmVyLmxlbmd0aCAhPT0gMzIpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2ludmFsaWQgcHJpdmF0ZSBrZXkgYnVmZmVyJyk7XG4gIH1cblxuICByZXR1cm4gRUNQYWlyLmZyb21Qcml2YXRlS2V5KGJ1ZmZlcik7XG59XG5cbi8qKlxuICogR2V0IHRoZSBwcml2YXRlIGtleSBhcyBhIDMyIGJ5dGVzIGJ1ZmZlci4gSWYgaXQgaXMgc21hbGxlciB0aGFuIDMyIGJ5dGVzLCBwYWQgaXQgd2l0aCB6ZXJvc1xuICogQHBhcmFtIHtFQ1BhaXJ9IGVjUGFpclxuICogQHJldHVybiBCdWZmZXIgMzIgYnl0ZXNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByaXZhdGVLZXlCdWZmZXJGcm9tRUNQYWlyKGVjUGFpcjogRUNQYWlySW50ZXJmYWNlKTogQnVmZmVyIHtcbiAgaWYgKGVjUGFpci5jb25zdHJ1Y3Rvci5uYW1lICE9PSAnRUNQYWlyJykge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoYGludmFsaWQgYXJndW1lbnQgZWNwYWlyYCk7XG4gIH1cblxuICBjb25zdCBwcml2a2V5ID0gZWNQYWlyLnByaXZhdGVLZXk7XG4gIGlmICghQnVmZmVyLmlzQnVmZmVyKHByaXZrZXkpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGB1bmV4cGVjdGVkIHByaXZrZXkgdHlwZWApO1xuICB9XG4gIGlmIChwcml2a2V5Lmxlbmd0aCAhPT0gMzIpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYHVuZXhwZWN0ZWQgcHJpdmtleSBsZW5ndGhgKTtcbiAgfVxuXG4gIHJldHVybiBwcml2a2V5O1xufVxuIl19
38
+ /**
39
+ * Converts an extended key from one network to another by updating its version bytes.
40
+ *
41
+ * Handles both public and private keys, allowing conversion between networks like
42
+ * Bitcoin Mainnet and Testnet.
43
+ *
44
+ * @returns The extended key with the updated network version.
45
+ */
46
+ function convertExtendedKeyNetwork(extendedKey, fromNetwork, targetNetwork) {
47
+ if (fromNetwork === targetNetwork) {
48
+ return extendedKey;
49
+ }
50
+ const decodedData = bs58check.decode(extendedKey);
51
+ const hdNode = noble_ecc_1.bip32.fromBase58(extendedKey, fromNetwork);
52
+ const targetVersionBytes = hdNode.isNeutered() ? targetNetwork.bip32.public : targetNetwork.bip32.private;
53
+ const versionBuffer = Buffer.alloc(4);
54
+ versionBuffer.writeUInt32BE(targetVersionBytes, 0);
55
+ versionBuffer.copy(decodedData, 0, 0, 4);
56
+ return bs58check.encode(decodedData);
57
+ }
58
+ exports.convertExtendedKeyNetwork = convertExtendedKeyNetwork;
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5dXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iaXRnby9rZXl1dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHVDQUF1QztBQUV2Qyw0Q0FBNkM7QUFFN0M7Ozs7O0dBS0c7QUFDSCxTQUFnQix3QkFBd0IsQ0FBQyxNQUFjLEVBQUUsT0FBaUI7SUFDeEUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxFQUFFLEVBQUU7UUFDcEQsTUFBTSxJQUFJLEtBQUssQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO0tBQy9DO0lBRUQsT0FBTyxrQkFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUN2QyxDQUFDO0FBTkQsNERBTUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBZ0IsMEJBQTBCLENBQUMsTUFBdUI7SUFDaEUsSUFBSSxNQUFNLENBQUMsV0FBVyxDQUFDLElBQUksS0FBSyxRQUFRLEVBQUU7UUFDeEMsTUFBTSxJQUFJLFNBQVMsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0tBQ2hEO0lBRUQsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQztJQUNsQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRTtRQUM3QixNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7S0FDNUM7SUFDRCxJQUFJLE9BQU8sQ0FBQyxNQUFNLEtBQUssRUFBRSxFQUFFO1FBQ3pCLE1BQU0sSUFBSSxLQUFLLENBQUMsMkJBQTJCLENBQUMsQ0FBQztLQUM5QztJQUVELE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUM7QUFkRCxnRUFjQztBQUVEOzs7Ozs7O0dBT0c7QUFDSCxTQUFnQix5QkFBeUIsQ0FBQyxXQUFtQixFQUFFLFdBQW9CLEVBQUUsYUFBc0I7SUFDekcsSUFBSSxXQUFXLEtBQUssYUFBYSxFQUFFO1FBQ2pDLE9BQU8sV0FBVyxDQUFDO0tBQ3BCO0lBQ0QsTUFBTSxXQUFXLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNsRCxNQUFNLE1BQU0sR0FBRyxpQkFBSyxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDMUQsTUFBTSxrQkFBa0IsR0FBRyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQztJQUMxRyxNQUFNLGFBQWEsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3RDLGFBQWEsQ0FBQyxhQUFhLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDbkQsYUFBYSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN6QyxPQUFPLFNBQVMsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7QUFDdkMsQ0FBQztBQVhELDhEQVdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRUNQYWlySW50ZXJmYWNlIH0gZnJvbSAnZWNwYWlyJztcbmltcG9ydCAqIGFzIGJzNThjaGVjayBmcm9tICdiczU4Y2hlY2snO1xuaW1wb3J0IHsgTmV0d29yayB9IGZyb20gJy4uL25ldHdvcmtzJztcbmltcG9ydCB7IGJpcDMyLCBFQ1BhaXIgfSBmcm9tICcuLi9ub2JsZV9lY2MnO1xuXG4vKipcbiAqIENyZWF0ZSBhbiBFQ1BhaXIgZnJvbSB0aGUgcmF3IHByaXZhdGUga2V5IGJ5dGVzXG4gKiBAcGFyYW0ge0J1ZmZlcn0gYnVmZmVyIC0gUHJpdmF0ZSBrZXkgZm9yIHRoZSBFQ1BhaXIuIE11c3QgYmUgZXhhY3RseSAzMiBieXRlcy5cbiAqIEBwYXJhbSB7T2JqZWN0fSBbbmV0d29ya10gLSBOZXR3b3JrIGZvciB0aGUgRUNQYWlyLiBEZWZhdWx0cyB0byBiaXRjb2luLlxuICogQHJldHVybiB7RUNQYWlyfVxuICovXG5leHBvcnQgZnVuY3Rpb24gcHJpdmF0ZUtleUJ1ZmZlclRvRUNQYWlyKGJ1ZmZlcjogQnVmZmVyLCBuZXR3b3JrPzogTmV0d29yayk6IEVDUGFpckludGVyZmFjZSB7XG4gIGlmICghQnVmZmVyLmlzQnVmZmVyKGJ1ZmZlcikgfHwgYnVmZmVyLmxlbmd0aCAhPT0gMzIpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2ludmFsaWQgcHJpdmF0ZSBrZXkgYnVmZmVyJyk7XG4gIH1cblxuICByZXR1cm4gRUNQYWlyLmZyb21Qcml2YXRlS2V5KGJ1ZmZlcik7XG59XG5cbi8qKlxuICogR2V0IHRoZSBwcml2YXRlIGtleSBhcyBhIDMyIGJ5dGVzIGJ1ZmZlci4gSWYgaXQgaXMgc21hbGxlciB0aGFuIDMyIGJ5dGVzLCBwYWQgaXQgd2l0aCB6ZXJvc1xuICogQHBhcmFtIHtFQ1BhaXJ9IGVjUGFpclxuICogQHJldHVybiBCdWZmZXIgMzIgYnl0ZXNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByaXZhdGVLZXlCdWZmZXJGcm9tRUNQYWlyKGVjUGFpcjogRUNQYWlySW50ZXJmYWNlKTogQnVmZmVyIHtcbiAgaWYgKGVjUGFpci5jb25zdHJ1Y3Rvci5uYW1lICE9PSAnRUNQYWlyJykge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoYGludmFsaWQgYXJndW1lbnQgZWNwYWlyYCk7XG4gIH1cblxuICBjb25zdCBwcml2a2V5ID0gZWNQYWlyLnByaXZhdGVLZXk7XG4gIGlmICghQnVmZmVyLmlzQnVmZmVyKHByaXZrZXkpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGB1bmV4cGVjdGVkIHByaXZrZXkgdHlwZWApO1xuICB9XG4gIGlmIChwcml2a2V5Lmxlbmd0aCAhPT0gMzIpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYHVuZXhwZWN0ZWQgcHJpdmtleSBsZW5ndGhgKTtcbiAgfVxuXG4gIHJldHVybiBwcml2a2V5O1xufVxuXG4vKipcbiAqIENvbnZlcnRzIGFuIGV4dGVuZGVkIGtleSBmcm9tIG9uZSBuZXR3b3JrIHRvIGFub3RoZXIgYnkgdXBkYXRpbmcgaXRzIHZlcnNpb24gYnl0ZXMuXG4gKlxuICogSGFuZGxlcyBib3RoIHB1YmxpYyBhbmQgcHJpdmF0ZSBrZXlzLCBhbGxvd2luZyBjb252ZXJzaW9uIGJldHdlZW4gbmV0d29ya3MgbGlrZVxuICogQml0Y29pbiBNYWlubmV0IGFuZCBUZXN0bmV0LlxuICpcbiAqIEByZXR1cm5zIFRoZSBleHRlbmRlZCBrZXkgd2l0aCB0aGUgdXBkYXRlZCBuZXR3b3JrIHZlcnNpb24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0RXh0ZW5kZWRLZXlOZXR3b3JrKGV4dGVuZGVkS2V5OiBzdHJpbmcsIGZyb21OZXR3b3JrOiBOZXR3b3JrLCB0YXJnZXROZXR3b3JrOiBOZXR3b3JrKTogc3RyaW5nIHtcbiAgaWYgKGZyb21OZXR3b3JrID09PSB0YXJnZXROZXR3b3JrKSB7XG4gICAgcmV0dXJuIGV4dGVuZGVkS2V5O1xuICB9XG4gIGNvbnN0IGRlY29kZWREYXRhID0gYnM1OGNoZWNrLmRlY29kZShleHRlbmRlZEtleSk7XG4gIGNvbnN0IGhkTm9kZSA9IGJpcDMyLmZyb21CYXNlNTgoZXh0ZW5kZWRLZXksIGZyb21OZXR3b3JrKTtcbiAgY29uc3QgdGFyZ2V0VmVyc2lvbkJ5dGVzID0gaGROb2RlLmlzTmV1dGVyZWQoKSA/IHRhcmdldE5ldHdvcmsuYmlwMzIucHVibGljIDogdGFyZ2V0TmV0d29yay5iaXAzMi5wcml2YXRlO1xuICBjb25zdCB2ZXJzaW9uQnVmZmVyID0gQnVmZmVyLmFsbG9jKDQpO1xuICB2ZXJzaW9uQnVmZmVyLndyaXRlVUludDMyQkUodGFyZ2V0VmVyc2lvbkJ5dGVzLCAwKTtcbiAgdmVyc2lvbkJ1ZmZlci5jb3B5KGRlY29kZWREYXRhLCAwLCAwLCA0KTtcbiAgcmV0dXJuIGJzNThjaGVjay5lbmNvZGUoZGVjb2RlZERhdGEpO1xufVxuIl19
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bitgo-beta/utxo-lib",
3
- "version": "8.0.3-beta.466",
3
+ "version": "8.0.3-beta.468",
4
4
  "description": "Client-side Bitcoin JavaScript library",
5
5
  "main": "./dist/src/index.js",
6
6
  "engines": {
@@ -46,7 +46,7 @@
46
46
  "dist/src"
47
47
  ],
48
48
  "dependencies": {
49
- "@bitgo-beta/blake2b": "3.0.4-beta.702",
49
+ "@bitgo-beta/blake2b": "3.0.4-beta.704",
50
50
  "@brandonblack/musig": "^0.0.1-alpha.0",
51
51
  "@noble/secp256k1": "1.6.3",
52
52
  "bech32": "^2.0.0",
@@ -84,5 +84,5 @@
84
84
  },
85
85
  "author": "BitGo SDK Team <sdkteam@bitgo.com>",
86
86
  "license": "MIT",
87
- "gitHead": "3f0c3f4270b811c0a58f5ec1097e51965bc33e8c"
87
+ "gitHead": "4571a82d1cc99557c8e99500f21731012164780b"
88
88
  }