@bitgo-beta/utxo-lib 8.0.3-beta.77 → 8.0.3-beta.79

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.
@@ -0,0 +1,15 @@
1
+ /**
2
+ * V1 Safe Wallets are the oldest type of wallets that BitGo supports. They were
3
+ * created back in 2013-14 and don't use HD chains. Instead, they have only one
4
+ * P2SH address per wallet whose redeem script uses uncompressed public keys.
5
+ * */
6
+ /// <reference types="node" />
7
+ import { Network } from '../../networks';
8
+ export declare function toUncompressedPub(pubkey: Buffer): Buffer;
9
+ export declare function toCompressedPub(pubkey: Buffer): Buffer;
10
+ /** create p2sh scripts with uncompressed pubkeys */
11
+ export declare function createLegacySafeOutputScript2of3(pubkeys: Buffer[], network?: Network): {
12
+ scriptPubKey: Buffer;
13
+ redeemScript: Buffer;
14
+ };
15
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/legacysafe/index.ts"],"names":[],"mappings":"AAAA;;;;KAIK;;AAIL,OAAO,EAAa,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAepD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAExD;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED,oDAAoD;AACpD,wBAAgB,gCAAgC,CAC9C,OAAO,EAAE,MAAM,EAAE,EACjB,OAAO,CAAC,EAAE,OAAO,GAChB;IACD,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACtB,CA4BA"}
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ /**
3
+ * V1 Safe Wallets are the oldest type of wallets that BitGo supports. They were
4
+ * created back in 2013-14 and don't use HD chains. Instead, they have only one
5
+ * P2SH address per wallet whose redeem script uses uncompressed public keys.
6
+ * */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.createLegacySafeOutputScript2of3 = exports.toCompressedPub = exports.toUncompressedPub = void 0;
9
+ const assert = require("assert");
10
+ const noble_ecc_1 = require("../../noble_ecc");
11
+ const networks_1 = require("../../networks");
12
+ const types_1 = require("../types");
13
+ const bitcoinjs = require("bitcoinjs-lib");
14
+ function getPublicKeyBuffer(publicKey, { compressed = true } = {}) {
15
+ const res = noble_ecc_1.ecc.pointCompress(publicKey, compressed);
16
+ if (res === null) {
17
+ throw new Error('invalid public key');
18
+ }
19
+ const buffer = Buffer.from(res);
20
+ assert.strictEqual(buffer.length, compressed ? 33 : 65);
21
+ return buffer;
22
+ }
23
+ function toUncompressedPub(pubkey) {
24
+ return getPublicKeyBuffer(pubkey, { compressed: false });
25
+ }
26
+ exports.toUncompressedPub = toUncompressedPub;
27
+ function toCompressedPub(pubkey) {
28
+ return getPublicKeyBuffer(pubkey, { compressed: true });
29
+ }
30
+ exports.toCompressedPub = toCompressedPub;
31
+ /** create p2sh scripts with uncompressed pubkeys */
32
+ function createLegacySafeOutputScript2of3(pubkeys, network) {
33
+ if (network) {
34
+ if (!networks_1.isBitcoin(network)) {
35
+ throw new Error(`unsupported network for legacy safe output script: ${network.coin}`);
36
+ }
37
+ }
38
+ if (!types_1.isTriple(pubkeys)) {
39
+ throw new Error(`must provide pubkey triple`);
40
+ }
41
+ pubkeys.forEach((key) => {
42
+ if (key.length !== 65) {
43
+ throw new Error(`Unexpected key length ${key.length}. Must use uncompressed keys.`);
44
+ }
45
+ });
46
+ const script2of3 = bitcoinjs.payments.p2ms({ m: 2, pubkeys });
47
+ assert(script2of3.output);
48
+ const scriptPubKey = bitcoinjs.payments.p2sh({ redeem: script2of3 });
49
+ assert(scriptPubKey);
50
+ assert(scriptPubKey.output);
51
+ return {
52
+ scriptPubKey: scriptPubKey.output,
53
+ redeemScript: script2of3.output,
54
+ };
55
+ }
56
+ exports.createLegacySafeOutputScript2of3 = createLegacySafeOutputScript2of3;
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYml0Z28vbGVnYWN5c2FmZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7S0FJSzs7O0FBRUwsaUNBQWlDO0FBQ2pDLCtDQUFnRDtBQUNoRCw2Q0FBb0Q7QUFDcEQsb0NBQW9DO0FBQ3BDLDJDQUEyQztBQUUzQyxTQUFTLGtCQUFrQixDQUFDLFNBQWlCLEVBQUUsRUFBRSxVQUFVLEdBQUcsSUFBSSxFQUFFLEdBQUcsRUFBRTtJQUN2RSxNQUFNLEdBQUcsR0FBRyxlQUFNLENBQUMsYUFBYSxDQUFDLFNBQVMsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUN4RCxJQUFJLEdBQUcsS0FBSyxJQUFJLEVBQUU7UUFDaEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0tBQ3ZDO0lBQ0QsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUVoQyxNQUFNLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3hELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUFFRCxTQUFnQixpQkFBaUIsQ0FBQyxNQUFjO0lBQzlDLE9BQU8sa0JBQWtCLENBQUMsTUFBTSxFQUFFLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7QUFDM0QsQ0FBQztBQUZELDhDQUVDO0FBRUQsU0FBZ0IsZUFBZSxDQUFDLE1BQWM7SUFDNUMsT0FBTyxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztBQUMxRCxDQUFDO0FBRkQsMENBRUM7QUFFRCxvREFBb0Q7QUFDcEQsU0FBZ0IsZ0NBQWdDLENBQzlDLE9BQWlCLEVBQ2pCLE9BQWlCO0lBS2pCLElBQUksT0FBTyxFQUFFO1FBQ1gsSUFBSSxDQUFDLG9CQUFTLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDdkIsTUFBTSxJQUFJLEtBQUssQ0FBQyxzREFBc0QsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7U0FDdkY7S0FDRjtJQUVELElBQUksQ0FBQyxnQkFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ3RCLE1BQU0sSUFBSSxLQUFLLENBQUMsNEJBQTRCLENBQUMsQ0FBQztLQUMvQztJQUVELE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtRQUN0QixJQUFJLEdBQUcsQ0FBQyxNQUFNLEtBQUssRUFBRSxFQUFFO1lBQ3JCLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLEdBQUcsQ0FBQyxNQUFNLCtCQUErQixDQUFDLENBQUM7U0FDckY7SUFDSCxDQUFDLENBQUMsQ0FBQztJQUVILE1BQU0sVUFBVSxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQzlELE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFMUIsTUFBTSxZQUFZLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUNyRSxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDckIsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUU1QixPQUFPO1FBQ0wsWUFBWSxFQUFFLFlBQVksQ0FBQyxNQUFNO1FBQ2pDLFlBQVksRUFBRSxVQUFVLENBQUMsTUFBTTtLQUNoQyxDQUFDO0FBQ0osQ0FBQztBQWxDRCw0RUFrQ0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFYxIFNhZmUgV2FsbGV0cyBhcmUgdGhlIG9sZGVzdCB0eXBlIG9mIHdhbGxldHMgdGhhdCBCaXRHbyBzdXBwb3J0cy4gVGhleSB3ZXJlXG4gKiBjcmVhdGVkIGJhY2sgaW4gMjAxMy0xNCBhbmQgZG9uJ3QgdXNlIEhEIGNoYWlucy4gSW5zdGVhZCwgdGhleSBoYXZlIG9ubHkgb25lXG4gKiBQMlNIIGFkZHJlc3MgcGVyIHdhbGxldCB3aG9zZSByZWRlZW0gc2NyaXB0IHVzZXMgdW5jb21wcmVzc2VkIHB1YmxpYyBrZXlzLlxuICogKi9cblxuaW1wb3J0ICogYXMgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5pbXBvcnQgeyBlY2MgYXMgZWNjTGliIH0gZnJvbSAnLi4vLi4vbm9ibGVfZWNjJztcbmltcG9ydCB7IGlzQml0Y29pbiwgTmV0d29yayB9IGZyb20gJy4uLy4uL25ldHdvcmtzJztcbmltcG9ydCB7IGlzVHJpcGxlIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0ICogYXMgYml0Y29pbmpzIGZyb20gJ2JpdGNvaW5qcy1saWInO1xuXG5mdW5jdGlvbiBnZXRQdWJsaWNLZXlCdWZmZXIocHVibGljS2V5OiBCdWZmZXIsIHsgY29tcHJlc3NlZCA9IHRydWUgfSA9IHt9KTogQnVmZmVyIHtcbiAgY29uc3QgcmVzID0gZWNjTGliLnBvaW50Q29tcHJlc3MocHVibGljS2V5LCBjb21wcmVzc2VkKTtcbiAgaWYgKHJlcyA9PT0gbnVsbCkge1xuICAgIHRocm93IG5ldyBFcnJvcignaW52YWxpZCBwdWJsaWMga2V5Jyk7XG4gIH1cbiAgY29uc3QgYnVmZmVyID0gQnVmZmVyLmZyb20ocmVzKTtcblxuICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVmZmVyLmxlbmd0aCwgY29tcHJlc3NlZCA/IDMzIDogNjUpO1xuICByZXR1cm4gYnVmZmVyO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdG9VbmNvbXByZXNzZWRQdWIocHVia2V5OiBCdWZmZXIpOiBCdWZmZXIge1xuICByZXR1cm4gZ2V0UHVibGljS2V5QnVmZmVyKHB1YmtleSwgeyBjb21wcmVzc2VkOiBmYWxzZSB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRvQ29tcHJlc3NlZFB1YihwdWJrZXk6IEJ1ZmZlcik6IEJ1ZmZlciB7XG4gIHJldHVybiBnZXRQdWJsaWNLZXlCdWZmZXIocHVia2V5LCB7IGNvbXByZXNzZWQ6IHRydWUgfSk7XG59XG5cbi8qKiBjcmVhdGUgcDJzaCBzY3JpcHRzIHdpdGggdW5jb21wcmVzc2VkIHB1YmtleXMgKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVMZWdhY3lTYWZlT3V0cHV0U2NyaXB0Mm9mMyhcbiAgcHVia2V5czogQnVmZmVyW10sXG4gIG5ldHdvcms/OiBOZXR3b3JrXG4pOiB7XG4gIHNjcmlwdFB1YktleTogQnVmZmVyO1xuICByZWRlZW1TY3JpcHQ6IEJ1ZmZlcjtcbn0ge1xuICBpZiAobmV0d29yaykge1xuICAgIGlmICghaXNCaXRjb2luKG5ldHdvcmspKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYHVuc3VwcG9ydGVkIG5ldHdvcmsgZm9yIGxlZ2FjeSBzYWZlIG91dHB1dCBzY3JpcHQ6ICR7bmV0d29yay5jb2lufWApO1xuICAgIH1cbiAgfVxuXG4gIGlmICghaXNUcmlwbGUocHVia2V5cykpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYG11c3QgcHJvdmlkZSBwdWJrZXkgdHJpcGxlYCk7XG4gIH1cblxuICBwdWJrZXlzLmZvckVhY2goKGtleSkgPT4ge1xuICAgIGlmIChrZXkubGVuZ3RoICE9PSA2NSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmV4cGVjdGVkIGtleSBsZW5ndGggJHtrZXkubGVuZ3RofS4gTXVzdCB1c2UgdW5jb21wcmVzc2VkIGtleXMuYCk7XG4gICAgfVxuICB9KTtcblxuICBjb25zdCBzY3JpcHQyb2YzID0gYml0Y29pbmpzLnBheW1lbnRzLnAybXMoeyBtOiAyLCBwdWJrZXlzIH0pO1xuICBhc3NlcnQoc2NyaXB0Mm9mMy5vdXRwdXQpO1xuXG4gIGNvbnN0IHNjcmlwdFB1YktleSA9IGJpdGNvaW5qcy5wYXltZW50cy5wMnNoKHsgcmVkZWVtOiBzY3JpcHQyb2YzIH0pO1xuICBhc3NlcnQoc2NyaXB0UHViS2V5KTtcbiAgYXNzZXJ0KHNjcmlwdFB1YktleS5vdXRwdXQpO1xuXG4gIHJldHVybiB7XG4gICAgc2NyaXB0UHViS2V5OiBzY3JpcHRQdWJLZXkub3V0cHV0LFxuICAgIHJlZGVlbVNjcmlwdDogc2NyaXB0Mm9mMy5vdXRwdXQsXG4gIH07XG59XG4iXX0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bitgo-beta/utxo-lib",
3
- "version": "8.0.3-beta.77",
3
+ "version": "8.0.3-beta.79",
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.313",
49
+ "@bitgo-beta/blake2b": "3.0.4-beta.315",
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": "e4956e8a35b038ae36da134a26476e6465543dd5"
87
+ "gitHead": "38a517896c90ab213484bc48b97565209b0c874e"
88
88
  }