@bitgo-beta/abstract-lightning 1.0.1-beta.839 → 1.0.1-beta.840

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.
Files changed (67) hide show
  1. package/dist/src/abstractLightningCoin.d.ts +17 -0
  2. package/dist/src/abstractLightningCoin.d.ts.map +1 -0
  3. package/dist/src/abstractLightningCoin.js +53 -0
  4. package/dist/src/codecs/api/backup.d.ts +15 -0
  5. package/dist/src/codecs/api/backup.d.ts.map +1 -0
  6. package/dist/src/codecs/api/backup.js +47 -0
  7. package/dist/src/codecs/api/balance.d.ts +132 -0
  8. package/dist/src/codecs/api/balance.d.ts.map +1 -0
  9. package/dist/src/codecs/api/balance.js +101 -0
  10. package/dist/src/codecs/api/index.d.ts +8 -0
  11. package/dist/src/codecs/api/index.d.ts.map +1 -0
  12. package/dist/src/codecs/api/index.js +24 -0
  13. package/dist/src/codecs/api/invoice.d.ts +66 -0
  14. package/dist/src/codecs/api/invoice.d.ts.map +1 -0
  15. package/dist/src/codecs/api/invoice.js +102 -0
  16. package/dist/src/codecs/api/payment.d.ts +107 -0
  17. package/dist/src/codecs/api/payment.d.ts.map +1 -0
  18. package/dist/src/codecs/api/payment.js +153 -0
  19. package/dist/src/codecs/api/transaction.d.ts +138 -0
  20. package/dist/src/codecs/api/transaction.d.ts.map +1 -0
  21. package/dist/src/codecs/api/transaction.js +122 -0
  22. package/dist/src/codecs/api/wallet.d.ts +99 -0
  23. package/dist/src/codecs/api/wallet.d.ts.map +1 -0
  24. package/dist/src/codecs/api/wallet.js +103 -0
  25. package/dist/src/codecs/api/withdraw.d.ts +90 -0
  26. package/dist/src/codecs/api/withdraw.d.ts.map +1 -0
  27. package/dist/src/codecs/api/withdraw.js +92 -0
  28. package/dist/src/codecs/index.d.ts +3 -0
  29. package/dist/src/codecs/index.d.ts.map +1 -0
  30. package/dist/src/codecs/index.js +19 -0
  31. package/dist/src/codecs/shared.d.ts +7 -0
  32. package/dist/src/codecs/shared.d.ts.map +1 -0
  33. package/dist/src/codecs/shared.js +42 -0
  34. package/dist/src/index.d.ts +5 -0
  35. package/dist/src/index.d.ts.map +1 -0
  36. package/dist/src/index.js +21 -0
  37. package/dist/src/lightning/index.d.ts +5 -0
  38. package/dist/src/lightning/index.d.ts.map +1 -0
  39. package/dist/src/lightning/index.js +21 -0
  40. package/dist/src/lightning/lightningUtils.d.ts +80 -0
  41. package/dist/src/lightning/lightningUtils.d.ts.map +1 -0
  42. package/dist/src/lightning/lightningUtils.js +258 -0
  43. package/dist/src/lightning/parseWithdrawPsbt.d.ts +8 -0
  44. package/dist/src/lightning/parseWithdrawPsbt.d.ts.map +1 -0
  45. package/dist/src/lightning/parseWithdrawPsbt.js +149 -0
  46. package/dist/src/lightning/signableJson.d.ts +17 -0
  47. package/dist/src/lightning/signableJson.d.ts.map +1 -0
  48. package/dist/src/lightning/signableJson.js +29 -0
  49. package/dist/src/lightning/signature.d.ts +22 -0
  50. package/dist/src/lightning/signature.d.ts.map +1 -0
  51. package/dist/src/lightning/signature.js +69 -0
  52. package/dist/src/wallet/custodialLightning.d.ts +7 -0
  53. package/dist/src/wallet/custodialLightning.d.ts.map +1 -0
  54. package/dist/src/wallet/custodialLightning.js +14 -0
  55. package/dist/src/wallet/index.d.ts +5 -0
  56. package/dist/src/wallet/index.d.ts.map +1 -0
  57. package/dist/src/wallet/index.js +21 -0
  58. package/dist/src/wallet/lightning.d.ts +140 -0
  59. package/dist/src/wallet/lightning.d.ts.map +1 -0
  60. package/dist/src/wallet/lightning.js +287 -0
  61. package/dist/src/wallet/selfCustodialLightning.d.ts +32 -0
  62. package/dist/src/wallet/selfCustodialLightning.d.ts.map +1 -0
  63. package/dist/src/wallet/selfCustodialLightning.js +131 -0
  64. package/dist/src/wallet/wallet.d.ts +7 -0
  65. package/dist/src/wallet/wallet.d.ts.map +1 -0
  66. package/dist/src/wallet/wallet.js +22 -0
  67. package/package.json +5 -5
@@ -0,0 +1,131 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.SelfCustodialLightningWallet = void 0;
37
+ exports.updateWalletCoinSpecific = updateWalletCoinSpecific;
38
+ const sdkcore = __importStar(require("@bitgo-beta/sdk-core"));
39
+ const codecs_1 = require("../codecs");
40
+ const lightning_1 = require("./lightning");
41
+ const lightning_2 = require("../lightning");
42
+ const t = __importStar(require("io-ts"));
43
+ function encryptWalletUpdateRequest(wallet, params, userAuthKeyEncryptedPrv) {
44
+ const coinName = wallet.coin();
45
+ const requestWithEncryption = {
46
+ ...params,
47
+ };
48
+ const userAuthXprv = wallet.bitgo.decrypt({
49
+ password: params.passphrase,
50
+ input: userAuthKeyEncryptedPrv,
51
+ });
52
+ if (params.signerTlsKey) {
53
+ requestWithEncryption.encryptedSignerTlsKey = wallet.bitgo.encrypt({
54
+ password: params.passphrase,
55
+ input: params.signerTlsKey,
56
+ });
57
+ }
58
+ if (params.signerAdminMacaroon) {
59
+ requestWithEncryption.encryptedSignerAdminMacaroon = wallet.bitgo.encrypt({
60
+ password: params.passphrase,
61
+ input: params.signerAdminMacaroon,
62
+ });
63
+ }
64
+ if (params.signerMacaroon) {
65
+ requestWithEncryption.encryptedSignerMacaroon = wallet.bitgo.encrypt({
66
+ password: (0, lightning_2.deriveLightningServiceSharedSecret)(coinName, userAuthXprv).toString('hex'),
67
+ input: params.signerMacaroon,
68
+ });
69
+ }
70
+ return t.exact(codecs_1.UpdateLightningWalletEncryptedRequest).encode(requestWithEncryption);
71
+ }
72
+ /**
73
+ * Updates the coin-specific configuration for a Lightning Wallet.
74
+ *
75
+ * @param {Wallet} wallet - Wallet.
76
+ * @param {UpdateLightningWalletClientRequest} params - The parameters containing the updated wallet-specific details.
77
+ * - `encryptedSignerMacaroon` (optional): This macaroon is used by the watch-only node to ask the signer node to sign transactions.
78
+ * Encrypted with ECDH secret key from private key of wallet's user auth key and public key of lightning service.
79
+ * - `encryptedSignerAdminMacaroon` (optional): Generated when initializing the wallet of the signer node.
80
+ * Encrypted with client's wallet passphrase.
81
+ * - `signerHost` (optional): The host address of the Lightning signer node.
82
+ * - `encryptedSignerTlsKey` (optional): The wallet passphrase encrypted TLS key of the signer.
83
+ * - `passphrase` (required): The wallet passphrase.
84
+ * - `signerTlsCert` (optional): The TLS certificate of the signer.
85
+ * - `watchOnlyAccounts` (optional): These are the accounts used to initialize the watch-only wallet.
86
+ * @returns {Promise<unknown>} A promise resolving to the updated wallet response or throwing an error if the update fails.
87
+ */
88
+ async function updateWalletCoinSpecific(wallet, params) {
89
+ if (!(0, lightning_2.isLightningCoinName)(wallet.coin())) {
90
+ throw new Error(`cant update lightning wallet coin specific for coin ${wallet.subType()}`);
91
+ }
92
+ if (wallet.subType() !== 'lightningSelfCustody') {
93
+ throw new Error(`cant update lightning wallet coin specific for wallet type ${wallet.subType()}`);
94
+ }
95
+ sdkcore.decodeOrElse(codecs_1.UpdateLightningWalletClientRequest.name, codecs_1.UpdateLightningWalletClientRequest, params, (errors) => {
96
+ // DON'T throw errors from decodeOrElse. It could leak sensitive information.
97
+ throw new Error(`Invalid params for lightning specific update wallet`);
98
+ });
99
+ const { userAuthKey } = await (0, lightning_1.getLightningAuthKeychains)(wallet);
100
+ const userAuthKeyEncryptedPrv = userAuthKey.encryptedPrv;
101
+ if (!userAuthKeyEncryptedPrv) {
102
+ throw new Error(`user auth key is missing encrypted private key`);
103
+ }
104
+ const updateRequestWithEncryption = encryptWalletUpdateRequest(wallet, params, userAuthKeyEncryptedPrv);
105
+ const signature = (0, lightning_2.createMessageSignature)(updateRequestWithEncryption, wallet.bitgo.decrypt({ password: params.passphrase, input: userAuthKeyEncryptedPrv }));
106
+ const coinSpecific = {
107
+ [wallet.coin()]: {
108
+ signedRequest: updateRequestWithEncryption,
109
+ signature,
110
+ },
111
+ };
112
+ return await wallet.bitgo.put(wallet.url()).send({ coinSpecific }).result();
113
+ }
114
+ class SelfCustodialLightningWallet extends lightning_1.LightningWallet {
115
+ constructor(wallet) {
116
+ super(wallet);
117
+ if (wallet.subType() !== 'lightningSelfCustody') {
118
+ throw new Error(`Invalid lightning wallet type for self custodial lightning: ${wallet.subType()}`);
119
+ }
120
+ }
121
+ async getChannelBackup() {
122
+ const backupResponse = await this.wallet.bitgo
123
+ .get(this.wallet.baseCoin.url(`/wallet/${this.wallet.id()}/lightning/backup`))
124
+ .result();
125
+ return sdkcore.decodeOrElse(codecs_1.BackupResponse.name, codecs_1.BackupResponse, backupResponse, (error) => {
126
+ throw new Error(`Invalid backup response: ${error}`);
127
+ });
128
+ }
129
+ }
130
+ exports.SelfCustodialLightningWallet = SelfCustodialLightningWallet;
131
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZkN1c3RvZGlhbExpZ2h0bmluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy93YWxsZXQvc2VsZkN1c3RvZGlhbExpZ2h0bmluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUE4REEsNERBc0NDO0FBcEdELDhEQUFnRDtBQUNoRCxzQ0FBc0g7QUFDdEgsMkNBQTJGO0FBQzNGLDRDQUErRztBQUMvRyx5Q0FBMkI7QUFFM0IsU0FBUywwQkFBMEIsQ0FDakMsTUFBdUIsRUFDdkIsTUFBMEMsRUFDMUMsdUJBQStCO0lBRS9CLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxJQUFJLEVBQXdCLENBQUM7SUFFckQsTUFBTSxxQkFBcUIsR0FBd0Y7UUFDakgsR0FBRyxNQUFNO0tBQ1YsQ0FBQztJQUVGLE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDO1FBQ3hDLFFBQVEsRUFBRSxNQUFNLENBQUMsVUFBVTtRQUMzQixLQUFLLEVBQUUsdUJBQXVCO0tBQy9CLENBQUMsQ0FBQztJQUVILElBQUksTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3hCLHFCQUFxQixDQUFDLHFCQUFxQixHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDO1lBQ2pFLFFBQVEsRUFBRSxNQUFNLENBQUMsVUFBVTtZQUMzQixLQUFLLEVBQUUsTUFBTSxDQUFDLFlBQVk7U0FDM0IsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELElBQUksTUFBTSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDL0IscUJBQXFCLENBQUMsNEJBQTRCLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUM7WUFDeEUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxVQUFVO1lBQzNCLEtBQUssRUFBRSxNQUFNLENBQUMsbUJBQW1CO1NBQ2xDLENBQUMsQ0FBQztJQUNMLENB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QUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsV0FBVyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxtQkFBbUIsQ0FBQyxDQUFDO2FBQzdFLE1BQU0sRUFBRSxDQUFDO1FBQ1osT0FBTyxPQUFPLENBQUMsWUFBWSxDQUFDLHVCQUFjLENBQUMsSUFBSSxFQUFFLHVCQUFjLEVBQUUsY0FBYyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDekYsTUFBTSxJQUFJLEtBQUssQ0FBQyw0QkFBNEIsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUN2RCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQWhCRCxvRUFnQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBzZGtjb3JlIGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IEJhY2t1cFJlc3BvbnNlLCBVcGRhdGVMaWdodG5pbmdXYWxsZXRDbGllbnRSZXF1ZXN0LCBVcGRhdGVMaWdodG5pbmdXYWxsZXRFbmNyeXB0ZWRSZXF1ZXN0IH0gZnJvbSAnLi4vY29kZWNzJztcbmltcG9ydCB7IGdldExpZ2h0bmluZ0F1dGhLZXljaGFpbnMsIElMaWdodG5pbmdXYWxsZXQsIExpZ2h0bmluZ1dhbGxldCB9IGZyb20gJy4vbGlnaHRuaW5nJztcbmltcG9ydCB7IGNyZWF0ZU1lc3NhZ2VTaWduYXR1cmUsIGRlcml2ZUxpZ2h0bmluZ1NlcnZpY2VTaGFyZWRTZWNyZXQsIGlzTGlnaHRuaW5nQ29pbk5hbWUgfSBmcm9tICcuLi9saWdodG5pbmcnO1xuaW1wb3J0ICogYXMgdCBmcm9tICdpby10cyc7XG5cbmZ1bmN0aW9uIGVuY3J5cHRXYWxsZXRVcGRhdGVSZXF1ZXN0KFxuICB3YWxsZXQ6IHNka2NvcmUuSVdhbGxldCxcbiAgcGFyYW1zOiBVcGRhdGVMaWdodG5pbmdXYWxsZXRDbGllbnRSZXF1ZXN0LFxuICB1c2VyQXV0aEtleUVuY3J5cHRlZFBydjogc3RyaW5nXG4pOiBVcGRhdGVMaWdodG5pbmdXYWxsZXRFbmNyeXB0ZWRSZXF1ZXN0IHtcbiAgY29uc3QgY29pbk5hbWUgPSB3YWxsZXQuY29pbigpIGFzICd0bG5idGMnIHwgJ2xuYnRjJztcblxuICBjb25zdCByZXF1ZXN0V2l0aEVuY3J5cHRpb246IFBhcnRpYWw8VXBkYXRlTGlnaHRuaW5nV2FsbGV0Q2xpZW50UmVxdWVzdCAmIFVwZGF0ZUxpZ2h0bmluZ1dhbGxldEVuY3J5cHRlZFJlcXVlc3Q+ID0ge1xuICAgIC4uLnBhcmFtcyxcbiAgfTtcblxuICBjb25zdCB1c2VyQXV0aFhwcnYgPSB3YWxsZXQuYml0Z28uZGVjcnlwdCh7XG4gICAgcGFzc3dvcmQ6IHBhcmFtcy5wYXNzcGhyYXNlLFxuICAgIGlucHV0OiB1c2VyQXV0aEtleUVuY3J5cHRlZFBydixcbiAgfSk7XG5cbiAgaWYgKHBhcmFtcy5zaWduZXJUbHNLZXkpIHtcbiAgICByZXF1ZXN0V2l0aEVuY3J5cHRpb24uZW5jcnlwdGVkU2lnbmVyVGxzS2V5ID0gd2FsbGV0LmJpdGdvLmVuY3J5cHQoe1xuICAgICAgcGFzc3dvcmQ6IHBhcmFtcy5wYXNzcGhyYXNlLFxuICAgICAgaW5wdXQ6IHBhcmFtcy5zaWduZXJUbHNLZXksXG4gICAgfSk7XG4gIH1cblxuICBpZiAocGFyYW1zLnNpZ25lckFkbWluTWFjYXJvb24pIHtcbiAgICByZXF1ZXN0V2l0aEVuY3J5cHRpb24uZW5jcnlwdGVkU2lnbmVyQWRtaW5NYWNhcm9vbiA9IHdhbGxldC5iaXRnby5lbmNyeXB0KHtcbiAgICAgIHBhc3N3b3JkOiBwYXJhbXMucGFzc3BocmFzZSxcbiAgICAgIGlucHV0OiBwYXJhbXMuc2lnbmVyQWRtaW5NYWNhcm9vbixcbiAgICB9KTtcbiAgfVxuXG4gIGlmIChwYXJhbXMuc2lnbmVyTWFjYXJvb24pIHtcbiAgICByZXF1ZXN0V2l0aEVuY3J5cHRpb24uZW5jcnlwdGVkU2lnbmVyTWFjYXJvb24gPSB3YWxsZXQuYml0Z28uZW5jcnlwdCh7XG4gICAgICBwYXNzd29yZDogZGVyaXZlTGlnaHRuaW5nU2VydmljZVNoYXJlZFNlY3JldChjb2luTmFtZSwgdXNlckF1dGhYcHJ2KS50b1N0cmluZygnaGV4JyksXG4gICAgICBpbnB1dDogcGFyYW1zLnNpZ25lck1hY2Fyb29uLFxuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIHQuZXhhY3QoVXBkYXRlTGlnaHRuaW5nV2FsbGV0RW5jcnlwdGVkUmVxdWVzdCkuZW5jb2RlKHJlcXVlc3RXaXRoRW5jcnlwdGlvbik7XG59XG5cbi8qKlxuICogVXBkYXRlcyB0aGUgY29pbi1zcGVjaWZpYyBjb25maWd1cmF0aW9uIGZvciBhIExpZ2h0bmluZyBXYWxsZXQuXG4gKlxuICogQHBhcmFtIHtXYWxsZXR9IHdhbGxldCAtIFdhbGxldC5cbiAqIEBwYXJhbSB7VXBkYXRlTGlnaHRuaW5nV2FsbGV0Q2xpZW50UmVxdWVzdH0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgY29udGFpbmluZyB0aGUgdXBkYXRlZCB3YWxsZXQtc3BlY2lmaWMgZGV0YWlscy5cbiAqICAgLSBgZW5jcnlwdGVkU2lnbmVyTWFjYXJvb25gIChvcHRpb25hbCk6IFRoaXMgbWFjYXJvb24gaXMgdXNlZCBieSB0aGUgd2F0Y2gtb25seSBub2RlIHRvIGFzayB0aGUgc2lnbmVyIG5vZGUgdG8gc2lnbiB0cmFuc2FjdGlvbnMuXG4gKiAgICAgRW5jcnlwdGVkIHdpdGggRUNESCBzZWNyZXQga2V5IGZyb20gcHJpdmF0ZSBrZXkgb2Ygd2FsbGV0J3MgdXNlciBhdXRoIGtleSBhbmQgcHVibGljIGtleSBvZiBsaWdodG5pbmcgc2VydmljZS5cbiAqICAgLSBgZW5jcnlwdGVkU2lnbmVyQWRtaW5NYWNhcm9vbmAgKG9wdGlvbmFsKTogR2VuZXJhdGVkIHdoZW4gaW5pdGlhbGl6aW5nIHRoZSB3YWxsZXQgb2YgdGhlIHNpZ25lciBub2RlLlxuICogICAgIEVuY3J5cHRlZCB3aXRoIGNsaWVudCdzIHdhbGxldCBwYXNzcGhyYXNlLlxuICogICAtIGBzaWduZXJIb3N0YCAob3B0aW9uYWwpOiBUaGUgaG9zdCBhZGRyZXNzIG9mIHRoZSBMaWdodG5pbmcgc2lnbmVyIG5vZGUuXG4gKiAgIC0gYGVuY3J5cHRlZFNpZ25lclRsc0tleWAgKG9wdGlvbmFsKTogVGhlIHdhbGxldCBwYXNzcGhyYXNlIGVuY3J5cHRlZCBUTFMga2V5IG9mIHRoZSBzaWduZXIuXG4gKiAgIC0gYHBhc3NwaHJhc2VgIChyZXF1aXJlZCk6IFRoZSB3YWxsZXQgcGFzc3BocmFzZS5cbiAqICAgLSBgc2lnbmVyVGxzQ2VydGAgKG9wdGlvbmFsKTogVGhlIFRMUyBjZXJ0aWZpY2F0ZSBvZiB0aGUgc2lnbmVyLlxuICogICAtIGB3YXRjaE9ubHlBY2NvdW50c2AgKG9wdGlvbmFsKTogVGhlc2UgYXJlIHRoZSBhY2NvdW50cyB1c2VkIHRvIGluaXRpYWxpemUgdGhlIHdhdGNoLW9ubHkgd2FsbGV0LlxuICogQHJldHVybnMge1Byb21pc2U8dW5rbm93bj59IEEgcHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIHVwZGF0ZWQgd2FsbGV0IHJlc3BvbnNlIG9yIHRocm93aW5nIGFuIGVycm9yIGlmIHRoZSB1cGRhdGUgZmFpbHMuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB1cGRhdGVXYWxsZXRDb2luU3BlY2lmaWMoXG4gIHdhbGxldDogc2RrY29yZS5JV2FsbGV0LFxuICBwYXJhbXM6IFVwZGF0ZUxpZ2h0bmluZ1dhbGxldENsaWVudFJlcXVlc3Rcbik6IFByb21pc2U8dW5rbm93bj4ge1xuICBpZiAoIWlzTGlnaHRuaW5nQ29pbk5hbWUod2FsbGV0LmNvaW4oKSkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYGNhbnQgdXBkYXRlIGxpZ2h0bmluZyB3YWxsZXQgY29pbiBzcGVjaWZpYyBmb3IgY29pbiAke3dhbGxldC5zdWJUeXBlKCl9YCk7XG4gIH1cbiAgaWYgKHdhbGxldC5zdWJUeXBlKCkgIT09ICdsaWdodG5pbmdTZWxmQ3VzdG9keScpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYGNhbnQgdXBkYXRlIGxpZ2h0bmluZyB3YWxsZXQgY29pbiBzcGVjaWZpYyBmb3Igd2FsbGV0IHR5cGUgJHt3YWxsZXQuc3ViVHlwZSgpfWApO1xuICB9XG5cbiAgc2RrY29yZS5kZWNvZGVPckVsc2UoXG4gICAgVXBkYXRlTGlnaHRuaW5nV2FsbGV0Q2xpZW50UmVxdWVzdC5uYW1lLFxuICAgIFVwZGF0ZUxpZ2h0bmluZ1dhbGxldENsaWVudFJlcXVlc3QsXG4gICAgcGFyYW1zLFxuICAgIChlcnJvcnMpID0+IHtcbiAgICAgIC8vIERPTidUIHRocm93IGVycm9ycyBmcm9tIGRlY29kZU9yRWxzZS4gSXQgY291bGQgbGVhayBzZW5zaXRpdmUgaW5mb3JtYXRpb24uXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgcGFyYW1zIGZvciBsaWdodG5pbmcgc3BlY2lmaWMgdXBkYXRlIHdhbGxldGApO1xuICAgIH1cbiAgKTtcblxuICBjb25zdCB7IHVzZXJBdXRoS2V5IH0gPSBhd2FpdCBnZXRMaWdodG5pbmdBdXRoS2V5Y2hhaW5zKHdhbGxldCk7XG4gIGNvbnN0IHVzZXJBdXRoS2V5RW5jcnlwdGVkUHJ2ID0gdXNlckF1dGhLZXkuZW5jcnlwdGVkUHJ2O1xuICBpZiAoIXVzZXJBdXRoS2V5RW5jcnlwdGVkUHJ2KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGB1c2VyIGF1dGgga2V5IGlzIG1pc3NpbmcgZW5jcnlwdGVkIHByaXZhdGUga2V5YCk7XG4gIH1cbiAgY29uc3QgdXBkYXRlUmVxdWVzdFdpdGhFbmNyeXB0aW9uID0gZW5jcnlwdFdhbGxldFVwZGF0ZVJlcXVlc3Qod2FsbGV0LCBwYXJhbXMsIHVzZXJBdXRoS2V5RW5jcnlwdGVkUHJ2KTtcbiAgY29uc3Qgc2lnbmF0dXJlID0gY3JlYXRlTWVzc2FnZVNpZ25hdHVyZShcbiAgICB1cGRhdGVSZXF1ZXN0V2l0aEVuY3J5cHRpb24sXG4gICAgd2FsbGV0LmJpdGdvLmRlY3J5cHQoeyBwYXNzd29yZDogcGFyYW1zLnBhc3NwaHJhc2UsIGlucHV0OiB1c2VyQXV0aEtleUVuY3J5cHRlZFBydiB9KVxuICApO1xuICBjb25zdCBjb2luU3BlY2lmaWMgPSB7XG4gICAgW3dhbGxldC5jb2luKCldOiB7XG4gICAgICBzaWduZWRSZXF1ZXN0OiB1cGRhdGVSZXF1ZXN0V2l0aEVuY3J5cHRpb24sXG4gICAgICBzaWduYXR1cmUsXG4gICAgfSxcbiAgfTtcbiAgcmV0dXJuIGF3YWl0IHdhbGxldC5iaXRnby5wdXQod2FsbGV0LnVybCgpKS5zZW5kKHsgY29pblNwZWNpZmljIH0pLnJlc3VsdCgpO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElTZWxmQ3VzdG9kaWFsTGlnaHRuaW5nV2FsbGV0IGV4dGVuZHMgSUxpZ2h0bmluZ1dhbGxldCB7XG4gIC8qKlxuICAgKiBHZXQgdGhlIGNoYW5uZWwgYmFja3VwIGZvciB0aGUgZ2l2ZW4gd2FsbGV0LlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxCYWNrdXBSZXNwb25zZT59IEEgcHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIGNoYW5uZWwgYmFja3VwXG4gICAqL1xuICBnZXRDaGFubmVsQmFja3VwKCk6IFByb21pc2U8QmFja3VwUmVzcG9uc2U+O1xufVxuXG5leHBvcnQgY2xhc3MgU2VsZkN1c3RvZGlhbExpZ2h0bmluZ1dhbGxldCBleHRlbmRzIExpZ2h0bmluZ1dhbGxldCBpbXBsZW1lbnRzIElTZWxmQ3VzdG9kaWFsTGlnaHRuaW5nV2FsbGV0IHtcbiAgY29uc3RydWN0b3Iod2FsbGV0OiBzZGtjb3JlLklXYWxsZXQpIHtcbiAgICBzdXBlcih3YWxsZXQpO1xuICAgIGlmICh3YWxsZXQuc3ViVHlwZSgpICE9PSAnbGlnaHRuaW5nU2VsZkN1c3RvZHknKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgbGlnaHRuaW5nIHdhbGxldCB0eXBlIGZvciBzZWxmIGN1c3RvZGlhbCBsaWdodG5pbmc6ICR7d2FsbGV0LnN1YlR5cGUoKX1gKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBnZXRDaGFubmVsQmFja3VwKCk6IFByb21pc2U8QmFja3VwUmVzcG9uc2U+IHtcbiAgICBjb25zdCBiYWNrdXBSZXNwb25zZSA9IGF3YWl0IHRoaXMud2FsbGV0LmJpdGdvXG4gICAgICAuZ2V0KHRoaXMud2FsbGV0LmJhc2VDb2luLnVybChgL3dhbGxldC8ke3RoaXMud2FsbGV0LmlkKCl9L2xpZ2h0bmluZy9iYWNrdXBgKSlcbiAgICAgIC5yZXN1bHQoKTtcbiAgICByZXR1cm4gc2RrY29yZS5kZWNvZGVPckVsc2UoQmFja3VwUmVzcG9uc2UubmFtZSwgQmFja3VwUmVzcG9uc2UsIGJhY2t1cFJlc3BvbnNlLCAoZXJyb3IpID0+IHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBiYWNrdXAgcmVzcG9uc2U6ICR7ZXJyb3J9YCk7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,7 @@
1
+ import * as sdkcore from '@bitgo-beta/sdk-core';
2
+ import { ILightningWallet } from './lightning';
3
+ /**
4
+ * Returns custodial or self custodial lightning wallet depends on wallet type.
5
+ */
6
+ export declare function getLightningWallet(wallet: sdkcore.IWallet): ILightningWallet;
7
+ //# sourceMappingURL=wallet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wallet.d.ts","sourceRoot":"","sources":["../../../src/wallet/wallet.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAGhD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,GAAG,gBAAgB,CAa5E"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getLightningWallet = getLightningWallet;
4
+ const selfCustodialLightning_1 = require("./selfCustodialLightning");
5
+ const custodialLightning_1 = require("./custodialLightning");
6
+ /**
7
+ * Returns custodial or self custodial lightning wallet depends on wallet type.
8
+ */
9
+ function getLightningWallet(wallet) {
10
+ if (wallet.baseCoin.getFamily() !== 'lnbtc') {
11
+ throw new Error(`invalid coin for lightning wallet: ${wallet.baseCoin.getFamily()}`);
12
+ }
13
+ switch (wallet.subType()) {
14
+ case 'lightningCustody':
15
+ return new custodialLightning_1.CustodialLightningWallet(wallet);
16
+ case 'lightningSelfCustody':
17
+ return new selfCustodialLightning_1.SelfCustodialLightningWallet(wallet);
18
+ default:
19
+ throw new Error(`invalid wallet type ${wallet.subType()} for lightning coin`);
20
+ }
21
+ }
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FsbGV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3dhbGxldC93YWxsZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFRQSxnREFhQztBQXBCRCxxRUFBd0U7QUFDeEUsNkRBQWdFO0FBR2hFOztHQUVHO0FBQ0gsU0FBZ0Isa0JBQWtCLENBQUMsTUFBdUI7SUFDeEQsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxLQUFLLE9BQU8sRUFBRSxDQUFDO1FBQzVDLE1BQU0sSUFBSSxLQUFLLENBQUMsc0NBQXNDLE1BQU0sQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZGLENBQUM7SUFFRCxRQUFRLE1BQU0sQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO1FBQ3pCLEtBQUssa0JBQWtCO1lBQ3JCLE9BQU8sSUFBSSw2Q0FBd0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM5QyxLQUFLLHNCQUFzQjtZQUN6QixPQUFPLElBQUkscURBQTRCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbEQ7WUFDRSxNQUFNLElBQUksS0FBSyxDQUFDLHVCQUF1QixNQUFNLENBQUMsT0FBTyxFQUFFLHFCQUFxQixDQUFDLENBQUM7SUFDbEYsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBzZGtjb3JlIGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IFNlbGZDdXN0b2RpYWxMaWdodG5pbmdXYWxsZXQgfSBmcm9tICcuL3NlbGZDdXN0b2RpYWxMaWdodG5pbmcnO1xuaW1wb3J0IHsgQ3VzdG9kaWFsTGlnaHRuaW5nV2FsbGV0IH0gZnJvbSAnLi9jdXN0b2RpYWxMaWdodG5pbmcnO1xuaW1wb3J0IHsgSUxpZ2h0bmluZ1dhbGxldCB9IGZyb20gJy4vbGlnaHRuaW5nJztcblxuLyoqXG4gKiBSZXR1cm5zIGN1c3RvZGlhbCBvciBzZWxmIGN1c3RvZGlhbCBsaWdodG5pbmcgd2FsbGV0IGRlcGVuZHMgb24gd2FsbGV0IHR5cGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRMaWdodG5pbmdXYWxsZXQod2FsbGV0OiBzZGtjb3JlLklXYWxsZXQpOiBJTGlnaHRuaW5nV2FsbGV0IHtcbiAgaWYgKHdhbGxldC5iYXNlQ29pbi5nZXRGYW1pbHkoKSAhPT0gJ2xuYnRjJykge1xuICAgIHRocm93IG5ldyBFcnJvcihgaW52YWxpZCBjb2luIGZvciBsaWdodG5pbmcgd2FsbGV0OiAke3dhbGxldC5iYXNlQ29pbi5nZXRGYW1pbHkoKX1gKTtcbiAgfVxuXG4gIHN3aXRjaCAod2FsbGV0LnN1YlR5cGUoKSkge1xuICAgIGNhc2UgJ2xpZ2h0bmluZ0N1c3RvZHknOlxuICAgICAgcmV0dXJuIG5ldyBDdXN0b2RpYWxMaWdodG5pbmdXYWxsZXQod2FsbGV0KTtcbiAgICBjYXNlICdsaWdodG5pbmdTZWxmQ3VzdG9keSc6XG4gICAgICByZXR1cm4gbmV3IFNlbGZDdXN0b2RpYWxMaWdodG5pbmdXYWxsZXQod2FsbGV0KTtcbiAgICBkZWZhdWx0OlxuICAgICAgdGhyb3cgbmV3IEVycm9yKGBpbnZhbGlkIHdhbGxldCB0eXBlICR7d2FsbGV0LnN1YlR5cGUoKX0gZm9yIGxpZ2h0bmluZyBjb2luYCk7XG4gIH1cbn1cbiJdfQ==
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bitgo-beta/abstract-lightning",
3
- "version": "1.0.1-beta.839",
3
+ "version": "1.0.1-beta.840",
4
4
  "description": "BitGo SDK coin library for base Lightning Network coin implementation",
5
5
  "main": "./dist/src/index.js",
6
6
  "types": "./dist/src/index.d.ts",
@@ -39,9 +39,9 @@
39
39
  ]
40
40
  },
41
41
  "dependencies": {
42
- "@bitgo-beta/sdk-core": "8.2.1-beta.1225",
43
- "@bitgo-beta/statics": "15.1.1-beta.1228",
44
- "@bitgo-beta/utxo-lib": "8.0.3-beta.1226",
42
+ "@bitgo-beta/sdk-core": "8.2.1-beta.1226",
43
+ "@bitgo-beta/statics": "15.1.1-beta.1229",
44
+ "@bitgo-beta/utxo-lib": "8.0.3-beta.1227",
45
45
  "@bitgo/public-types": "5.22.0",
46
46
  "bip174": "npm:@bitgo-forks/bip174@3.1.0-master.4",
47
47
  "bs58check": "^2.1.2",
@@ -50,5 +50,5 @@
50
50
  "io-ts-types": "^0.5.16",
51
51
  "macaroon": "^3.0.4"
52
52
  },
53
- "gitHead": "6931d7c4ed383faba4a5a4f351bb2ce90a40e0c9"
53
+ "gitHead": "747f26f2887b3dd148ad1542eed982fac9c4894d"
54
54
  }