@bitgo-beta/abstract-lightning 1.0.0-alpha.14 → 1.0.0-alpha.140
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 +202 -0
- package/dist/src/abstractLightningCoin.d.ts +0 -1
- package/dist/src/abstractLightningCoin.d.ts.map +1 -1
- package/dist/src/abstractLightningCoin.js +1 -1
- package/dist/src/codecs/api/backup.d.ts +15 -0
- package/dist/src/codecs/api/backup.d.ts.map +1 -0
- package/dist/src/codecs/api/backup.js +47 -0
- package/dist/src/codecs/api/balance.d.ts +114 -0
- package/dist/src/codecs/api/balance.d.ts.map +1 -0
- package/dist/src/codecs/api/balance.js +92 -0
- package/dist/src/codecs/api/index.d.ts +7 -0
- package/dist/src/codecs/api/index.d.ts.map +1 -0
- package/dist/src/codecs/api/index.js +23 -0
- package/dist/src/codecs/api/invoice.d.ts +54 -0
- package/dist/src/codecs/api/invoice.d.ts.map +1 -0
- package/dist/src/codecs/api/invoice.js +105 -0
- package/dist/src/codecs/api/payment.d.ts +72 -0
- package/dist/src/codecs/api/payment.d.ts.map +1 -0
- package/dist/src/codecs/api/payment.js +128 -0
- package/dist/src/codecs/api/transaction.d.ts +82 -0
- package/dist/src/codecs/api/transaction.d.ts.map +1 -0
- package/dist/src/codecs/api/transaction.js +104 -0
- package/dist/src/codecs/api/wallet.d.ts +94 -0
- package/dist/src/codecs/api/wallet.d.ts.map +1 -0
- package/dist/src/codecs/api/wallet.js +91 -0
- package/dist/src/codecs/index.d.ts +3 -0
- package/dist/src/codecs/index.d.ts.map +1 -0
- package/dist/src/codecs/index.js +19 -0
- package/dist/src/codecs/shared.d.ts +7 -0
- package/dist/src/codecs/shared.d.ts.map +1 -0
- package/dist/src/codecs/shared.js +42 -0
- package/dist/src/index.d.ts +3 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +4 -1
- package/dist/src/lightning/index.d.ts +4 -0
- package/dist/src/lightning/index.d.ts.map +1 -0
- package/dist/src/lightning/index.js +20 -0
- package/dist/src/lightning/lightningUtils.d.ts +59 -0
- package/dist/src/lightning/lightningUtils.d.ts.map +1 -0
- package/dist/src/lightning/lightningUtils.js +224 -0
- package/dist/src/lightning/signableJson.d.ts +17 -0
- package/dist/src/lightning/signableJson.d.ts.map +1 -0
- package/dist/src/lightning/signableJson.js +29 -0
- package/dist/src/lightning/signature.d.ts +22 -0
- package/dist/src/lightning/signature.d.ts.map +1 -0
- package/dist/src/lightning/signature.js +69 -0
- package/dist/src/wallet/custodialLightning.d.ts +7 -0
- package/dist/src/wallet/custodialLightning.d.ts.map +1 -0
- package/dist/src/wallet/custodialLightning.js +14 -0
- package/dist/src/wallet/index.d.ts +5 -0
- package/dist/src/wallet/index.d.ts.map +1 -0
- package/dist/src/wallet/index.js +21 -0
- package/dist/src/wallet/lightning.d.ts +105 -0
- package/dist/src/wallet/lightning.d.ts.map +1 -0
- package/dist/src/wallet/lightning.js +204 -0
- package/dist/src/wallet/selfCustodialLightning.d.ts +32 -0
- package/dist/src/wallet/selfCustodialLightning.d.ts.map +1 -0
- package/dist/src/wallet/selfCustodialLightning.js +127 -0
- package/dist/src/wallet/wallet.d.ts +7 -0
- package/dist/src/wallet/wallet.d.ts.map +1 -0
- package/dist/src/wallet/wallet.js +22 -0
- package/package.json +13 -4
|
@@ -0,0 +1,127 @@
|
|
|
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, userAuthKey) {
|
|
44
|
+
const coinName = wallet.coin();
|
|
45
|
+
const requestWithEncryption = {
|
|
46
|
+
...params,
|
|
47
|
+
};
|
|
48
|
+
const userAuthXprv = wallet.bitgo.decrypt({
|
|
49
|
+
password: params.passphrase,
|
|
50
|
+
input: userAuthKey.encryptedPrv,
|
|
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.type()}`);
|
|
91
|
+
}
|
|
92
|
+
if (wallet.type() !== 'hot') {
|
|
93
|
+
throw new Error(`cant update lightning wallet coin specific for wallet type ${wallet.type()}`);
|
|
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 updateRequestWithEncryption = encryptWalletUpdateRequest(wallet, params, userAuthKey);
|
|
101
|
+
const signature = (0, lightning_2.createMessageSignature)(updateRequestWithEncryption, wallet.bitgo.decrypt({ password: params.passphrase, input: userAuthKey.encryptedPrv }));
|
|
102
|
+
const coinSpecific = {
|
|
103
|
+
[wallet.coin()]: {
|
|
104
|
+
signedRequest: updateRequestWithEncryption,
|
|
105
|
+
signature,
|
|
106
|
+
},
|
|
107
|
+
};
|
|
108
|
+
return await wallet.bitgo.put(wallet.url()).send({ coinSpecific }).result();
|
|
109
|
+
}
|
|
110
|
+
class SelfCustodialLightningWallet extends lightning_1.LightningWallet {
|
|
111
|
+
constructor(wallet) {
|
|
112
|
+
super(wallet);
|
|
113
|
+
if (wallet.type() !== 'hot') {
|
|
114
|
+
throw new Error(`Invalid lightning wallet type for self custodial lightning: ${wallet.type()}`);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
async getChannelBackup() {
|
|
118
|
+
const backupResponse = await this.wallet.bitgo
|
|
119
|
+
.get(this.wallet.baseCoin.url(`/wallet/${this.wallet.id()}/lightning/backup`))
|
|
120
|
+
.result();
|
|
121
|
+
return sdkcore.decodeOrElse(codecs_1.BackupResponse.name, codecs_1.BackupResponse, backupResponse, (error) => {
|
|
122
|
+
throw new Error(`Invalid backup response: ${error}`);
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
exports.SelfCustodialLightningWallet = SelfCustodialLightningWallet;
|
|
127
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZkN1c3RvZGlhbExpZ2h0bmluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy93YWxsZXQvc2VsZkN1c3RvZGlhbExpZ2h0bmluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFtRUEsNERBa0NDO0FBckdELDhEQUFnRDtBQUNoRCxzQ0FLbUI7QUFDbkIsMkNBQTJGO0FBQzNGLDRDQUErRztBQUMvRyx5Q0FBMkI7QUFFM0IsU0FBUywwQkFBMEIsQ0FDakMsTUFBdUIsRUFDdkIsTUFBMEMsRUFDMUMsV0FBa0M7SUFFbEMsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLElBQUksRUFBd0IsQ0FBQztJQUVyRCxNQUFNLHFCQUFxQixHQUF3RjtRQUNqSCxHQUFHLE1BQU07S0FDVixDQUFDO0lBRUYsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUM7UUFDeEMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxVQUFVO1FBQzNCLEtBQUssRUFBRSxXQUFXLENBQUMsWUFBWTtLQUNoQyxDQUFDLENBQUM7SUFFSCxJQUFJLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN4QixxQkFBcUIsQ0FBQyxxQkFBcUIsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQztZQUNqRSxRQUFRLEVBQUUsTUFBTSxDQUFDLFVBQVU7WUFDM0IsS0FBSyxFQUFFLE1BQU0sQ0FBQyxZQUFZO1NBQzNCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxJQUFJLE1BQU0sQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQy9CLHFCQUFxQixDQUFDLDRCQUE0QixHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDO1lBQ3hFLFFBQVEsRUFBRSxNQUFNLENBQUMsVUFBVTtZQUMzQixLQUFLLEVBQUUsTUFBTSxDQUFDLG1CQUFtQjtTQUNsQyxDQUFDLENBQUM7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O1FBQ1osT0FBTyxPQUFPLENBQUMsWUFBWSxDQUFDLHVCQUFjLENBQUMsSUFBSSxFQUFFLHVCQUFjLEVBQUUsY0FBYyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDekYsTUFBTSxJQUFJLEtBQUssQ0FBQyw0QkFBNEIsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUN2RCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQWhCRCxvRUFnQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBzZGtjb3JlIGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7XG4gIEJhY2t1cFJlc3BvbnNlLFxuICBMaWdodG5pbmdBdXRoS2V5Y2hhaW4sXG4gIFVwZGF0ZUxpZ2h0bmluZ1dhbGxldENsaWVudFJlcXVlc3QsXG4gIFVwZGF0ZUxpZ2h0bmluZ1dhbGxldEVuY3J5cHRlZFJlcXVlc3QsXG59IGZyb20gJy4uL2NvZGVjcyc7XG5pbXBvcnQgeyBnZXRMaWdodG5pbmdBdXRoS2V5Y2hhaW5zLCBJTGlnaHRuaW5nV2FsbGV0LCBMaWdodG5pbmdXYWxsZXQgfSBmcm9tICcuL2xpZ2h0bmluZyc7XG5pbXBvcnQgeyBjcmVhdGVNZXNzYWdlU2lnbmF0dXJlLCBkZXJpdmVMaWdodG5pbmdTZXJ2aWNlU2hhcmVkU2VjcmV0LCBpc0xpZ2h0bmluZ0NvaW5OYW1lIH0gZnJvbSAnLi4vbGlnaHRuaW5nJztcbmltcG9ydCAqIGFzIHQgZnJvbSAnaW8tdHMnO1xuXG5mdW5jdGlvbiBlbmNyeXB0V2FsbGV0VXBkYXRlUmVxdWVzdChcbiAgd2FsbGV0OiBzZGtjb3JlLklXYWxsZXQsXG4gIHBhcmFtczogVXBkYXRlTGlnaHRuaW5nV2FsbGV0Q2xpZW50UmVxdWVzdCxcbiAgdXNlckF1dGhLZXk6IExpZ2h0bmluZ0F1dGhLZXljaGFpblxuKTogVXBkYXRlTGlnaHRuaW5nV2FsbGV0RW5jcnlwdGVkUmVxdWVzdCB7XG4gIGNvbnN0IGNvaW5OYW1lID0gd2FsbGV0LmNvaW4oKSBhcyAndGxuYnRjJyB8ICdsbmJ0Yyc7XG5cbiAgY29uc3QgcmVxdWVzdFdpdGhFbmNyeXB0aW9uOiBQYXJ0aWFsPFVwZGF0ZUxpZ2h0bmluZ1dhbGxldENsaWVudFJlcXVlc3QgJiBVcGRhdGVMaWdodG5pbmdXYWxsZXRFbmNyeXB0ZWRSZXF1ZXN0PiA9IHtcbiAgICAuLi5wYXJhbXMsXG4gIH07XG5cbiAgY29uc3QgdXNlckF1dGhYcHJ2ID0gd2FsbGV0LmJpdGdvLmRlY3J5cHQoe1xuICAgIHBhc3N3b3JkOiBwYXJhbXMucGFzc3BocmFzZSxcbiAgICBpbnB1dDogdXNlckF1dGhLZXkuZW5jcnlwdGVkUHJ2LFxuICB9KTtcblxuICBpZiAocGFyYW1zLnNpZ25lclRsc0tleSkge1xuICAgIHJlcXVlc3RXaXRoRW5jcnlwdGlvbi5lbmNyeXB0ZWRTaWduZXJUbHNLZXkgPSB3YWxsZXQuYml0Z28uZW5jcnlwdCh7XG4gICAgICBwYXNzd29yZDogcGFyYW1zLnBhc3NwaHJhc2UsXG4gICAgICBpbnB1dDogcGFyYW1zLnNpZ25lclRsc0tleSxcbiAgICB9KTtcbiAgfVxuXG4gIGlmIChwYXJhbXMuc2lnbmVyQWRtaW5NYWNhcm9vbikge1xuICAgIHJlcXVlc3RXaXRoRW5jcnlwdGlvbi5lbmNyeXB0ZWRTaWduZXJBZG1pbk1hY2Fyb29uID0gd2FsbGV0LmJpdGdvLmVuY3J5cHQoe1xuICAgICAgcGFzc3dvcmQ6IHBhcmFtcy5wYXNzcGhyYXNlLFxuICAgICAgaW5wdXQ6IHBhcmFtcy5zaWduZXJBZG1pbk1hY2Fyb29uLFxuICAgIH0pO1xuICB9XG5cbiAgaWYgKHBhcmFtcy5zaWduZXJNYWNhcm9vbikge1xuICAgIHJlcXVlc3RXaXRoRW5jcnlwdGlvbi5lbmNyeXB0ZWRTaWduZXJNYWNhcm9vbiA9IHdhbGxldC5iaXRnby5lbmNyeXB0KHtcbiAgICAgIHBhc3N3b3JkOiBkZXJpdmVMaWdodG5pbmdTZXJ2aWNlU2hhcmVkU2VjcmV0KGNvaW5OYW1lLCB1c2VyQXV0aFhwcnYpLnRvU3RyaW5nKCdoZXgnKSxcbiAgICAgIGlucHV0OiBwYXJhbXMuc2lnbmVyTWFjYXJvb24sXG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gdC5leGFjdChVcGRhdGVMaWdodG5pbmdXYWxsZXRFbmNyeXB0ZWRSZXF1ZXN0KS5lbmNvZGUocmVxdWVzdFdpdGhFbmNyeXB0aW9uKTtcbn1cblxuLyoqXG4gKiBVcGRhdGVzIHRoZSBjb2luLXNwZWNpZmljIGNvbmZpZ3VyYXRpb24gZm9yIGEgTGlnaHRuaW5nIFdhbGxldC5cbiAqXG4gKiBAcGFyYW0ge1dhbGxldH0gd2FsbGV0IC0gV2FsbGV0LlxuICogQHBhcmFtIHtVcGRhdGVMaWdodG5pbmdXYWxsZXRDbGllbnRSZXF1ZXN0fSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBjb250YWluaW5nIHRoZSB1cGRhdGVkIHdhbGxldC1zcGVjaWZpYyBkZXRhaWxzLlxuICogICAtIGBlbmNyeXB0ZWRTaWduZXJNYWNhcm9vbmAgKG9wdGlvbmFsKTogVGhpcyBtYWNhcm9vbiBpcyB1c2VkIGJ5IHRoZSB3YXRjaC1vbmx5IG5vZGUgdG8gYXNrIHRoZSBzaWduZXIgbm9kZSB0byBzaWduIHRyYW5zYWN0aW9ucy5cbiAqICAgICBFbmNyeXB0ZWQgd2l0aCBFQ0RIIHNlY3JldCBrZXkgZnJvbSBwcml2YXRlIGtleSBvZiB3YWxsZXQncyB1c2VyIGF1dGgga2V5IGFuZCBwdWJsaWMga2V5IG9mIGxpZ2h0bmluZyBzZXJ2aWNlLlxuICogICAtIGBlbmNyeXB0ZWRTaWduZXJBZG1pbk1hY2Fyb29uYCAob3B0aW9uYWwpOiBHZW5lcmF0ZWQgd2hlbiBpbml0aWFsaXppbmcgdGhlIHdhbGxldCBvZiB0aGUgc2lnbmVyIG5vZGUuXG4gKiAgICAgRW5jcnlwdGVkIHdpdGggY2xpZW50J3Mgd2FsbGV0IHBhc3NwaHJhc2UuXG4gKiAgIC0gYHNpZ25lckhvc3RgIChvcHRpb25hbCk6IFRoZSBob3N0IGFkZHJlc3Mgb2YgdGhlIExpZ2h0bmluZyBzaWduZXIgbm9kZS5cbiAqICAgLSBgZW5jcnlwdGVkU2lnbmVyVGxzS2V5YCAob3B0aW9uYWwpOiBUaGUgd2FsbGV0IHBhc3NwaHJhc2UgZW5jcnlwdGVkIFRMUyBrZXkgb2YgdGhlIHNpZ25lci5cbiAqICAgLSBgcGFzc3BocmFzZWAgKHJlcXVpcmVkKTogVGhlIHdhbGxldCBwYXNzcGhyYXNlLlxuICogICAtIGBzaWduZXJUbHNDZXJ0YCAob3B0aW9uYWwpOiBUaGUgVExTIGNlcnRpZmljYXRlIG9mIHRoZSBzaWduZXIuXG4gKiAgIC0gYHdhdGNoT25seUFjY291bnRzYCAob3B0aW9uYWwpOiBUaGVzZSBhcmUgdGhlIGFjY291bnRzIHVzZWQgdG8gaW5pdGlhbGl6ZSB0aGUgd2F0Y2gtb25seSB3YWxsZXQuXG4gKiBAcmV0dXJucyB7UHJvbWlzZTx1bmtub3duPn0gQSBwcm9taXNlIHJlc29sdmluZyB0byB0aGUgdXBkYXRlZCB3YWxsZXQgcmVzcG9uc2Ugb3IgdGhyb3dpbmcgYW4gZXJyb3IgaWYgdGhlIHVwZGF0ZSBmYWlscy5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHVwZGF0ZVdhbGxldENvaW5TcGVjaWZpYyhcbiAgd2FsbGV0OiBzZGtjb3JlLklXYWxsZXQsXG4gIHBhcmFtczogVXBkYXRlTGlnaHRuaW5nV2FsbGV0Q2xpZW50UmVxdWVzdFxuKTogUHJvbWlzZTx1bmtub3duPiB7XG4gIGlmICghaXNMaWdodG5pbmdDb2luTmFtZSh3YWxsZXQuY29pbigpKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgY2FudCB1cGRhdGUgbGlnaHRuaW5nIHdhbGxldCBjb2luIHNwZWNpZmljIGZvciBjb2luICR7d2FsbGV0LnR5cGUoKX1gKTtcbiAgfVxuICBpZiAod2FsbGV0LnR5cGUoKSAhPT0gJ2hvdCcpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYGNhbnQgdXBkYXRlIGxpZ2h0bmluZyB3YWxsZXQgY29pbiBzcGVjaWZpYyBmb3Igd2FsbGV0IHR5cGUgJHt3YWxsZXQudHlwZSgpfWApO1xuICB9XG5cbiAgc2RrY29yZS5kZWNvZGVPckVsc2UoXG4gICAgVXBkYXRlTGlnaHRuaW5nV2FsbGV0Q2xpZW50UmVxdWVzdC5uYW1lLFxuICAgIFVwZGF0ZUxpZ2h0bmluZ1dhbGxldENsaWVudFJlcXVlc3QsXG4gICAgcGFyYW1zLFxuICAgIChlcnJvcnMpID0+IHtcbiAgICAgIC8vIERPTidUIHRocm93IGVycm9ycyBmcm9tIGRlY29kZU9yRWxzZS4gSXQgY291bGQgbGVhayBzZW5zaXRpdmUgaW5mb3JtYXRpb24uXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgcGFyYW1zIGZvciBsaWdodG5pbmcgc3BlY2lmaWMgdXBkYXRlIHdhbGxldGApO1xuICAgIH1cbiAgKTtcblxuICBjb25zdCB7IHVzZXJBdXRoS2V5IH0gPSBhd2FpdCBnZXRMaWdodG5pbmdBdXRoS2V5Y2hhaW5zKHdhbGxldCk7XG4gIGNvbnN0IHVwZGF0ZVJlcXVlc3RXaXRoRW5jcnlwdGlvbiA9IGVuY3J5cHRXYWxsZXRVcGRhdGVSZXF1ZXN0KHdhbGxldCwgcGFyYW1zLCB1c2VyQXV0aEtleSk7XG4gIGNvbnN0IHNpZ25hdHVyZSA9IGNyZWF0ZU1lc3NhZ2VTaWduYXR1cmUoXG4gICAgdXBkYXRlUmVxdWVzdFdpdGhFbmNyeXB0aW9uLFxuICAgIHdhbGxldC5iaXRnby5kZWNyeXB0KHsgcGFzc3dvcmQ6IHBhcmFtcy5wYXNzcGhyYXNlLCBpbnB1dDogdXNlckF1dGhLZXkuZW5jcnlwdGVkUHJ2IH0pXG4gICk7XG4gIGNvbnN0IGNvaW5TcGVjaWZpYyA9IHtcbiAgICBbd2FsbGV0LmNvaW4oKV06IHtcbiAgICAgIHNpZ25lZFJlcXVlc3Q6IHVwZGF0ZVJlcXVlc3RXaXRoRW5jcnlwdGlvbixcbiAgICAgIHNpZ25hdHVyZSxcbiAgICB9LFxuICB9O1xuICByZXR1cm4gYXdhaXQgd2FsbGV0LmJpdGdvLnB1dCh3YWxsZXQudXJsKCkpLnNlbmQoeyBjb2luU3BlY2lmaWMgfSkucmVzdWx0KCk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVNlbGZDdXN0b2RpYWxMaWdodG5pbmdXYWxsZXQgZXh0ZW5kcyBJTGlnaHRuaW5nV2FsbGV0IHtcbiAgLyoqXG4gICAqIEdldCB0aGUgY2hhbm5lbCBiYWNrdXAgZm9yIHRoZSBnaXZlbiB3YWxsZXQuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPEJhY2t1cFJlc3BvbnNlPn0gQSBwcm9taXNlIHJlc29sdmluZyB0byB0aGUgY2hhbm5lbCBiYWNrdXBcbiAgICovXG4gIGdldENoYW5uZWxCYWNrdXAoKTogUHJvbWlzZTxCYWNrdXBSZXNwb25zZT47XG59XG5cbmV4cG9ydCBjbGFzcyBTZWxmQ3VzdG9kaWFsTGlnaHRuaW5nV2FsbGV0IGV4dGVuZHMgTGlnaHRuaW5nV2FsbGV0IGltcGxlbWVudHMgSVNlbGZDdXN0b2RpYWxMaWdodG5pbmdXYWxsZXQge1xuICBjb25zdHJ1Y3Rvcih3YWxsZXQ6IHNka2NvcmUuSVdhbGxldCkge1xuICAgIHN1cGVyKHdhbGxldCk7XG4gICAgaWYgKHdhbGxldC50eXBlKCkgIT09ICdob3QnKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgbGlnaHRuaW5nIHdhbGxldCB0eXBlIGZvciBzZWxmIGN1c3RvZGlhbCBsaWdodG5pbmc6ICR7d2FsbGV0LnR5cGUoKX1gKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBnZXRDaGFubmVsQmFja3VwKCk6IFByb21pc2U8QmFja3VwUmVzcG9uc2U+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.type()) {
|
|
14
|
+
case 'custodial':
|
|
15
|
+
return new custodialLightning_1.CustodialLightningWallet(wallet);
|
|
16
|
+
case 'hot':
|
|
17
|
+
return new selfCustodialLightning_1.SelfCustodialLightningWallet(wallet);
|
|
18
|
+
default:
|
|
19
|
+
throw new Error(`invalid wallet type ${wallet.type()} for lightning coin`);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FsbGV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3dhbGxldC93YWxsZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFRQSxnREFhQztBQXBCRCxxRUFBd0U7QUFDeEUsNkRBQWdFO0FBR2hFOztHQUVHO0FBQ0gsU0FBZ0Isa0JBQWtCLENBQUMsTUFBdUI7SUFDeEQsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxLQUFLLE9BQU8sRUFBRSxDQUFDO1FBQzVDLE1BQU0sSUFBSSxLQUFLLENBQUMsc0NBQXNDLE1BQU0sQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZGLENBQUM7SUFFRCxRQUFRLE1BQU0sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDO1FBQ3RCLEtBQUssV0FBVztZQUNkLE9BQU8sSUFBSSw2Q0FBd0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM5QyxLQUFLLEtBQUs7WUFDUixPQUFPLElBQUkscURBQTRCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbEQ7WUFDRSxNQUFNLElBQUksS0FBSyxDQUFDLHVCQUF1QixNQUFNLENBQUMsSUFBSSxFQUFFLHFCQUFxQixDQUFDLENBQUM7SUFDL0UsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBzZGtjb3JlIGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IFNlbGZDdXN0b2RpYWxMaWdodG5pbmdXYWxsZXQgfSBmcm9tICcuL3NlbGZDdXN0b2RpYWxMaWdodG5pbmcnO1xuaW1wb3J0IHsgQ3VzdG9kaWFsTGlnaHRuaW5nV2FsbGV0IH0gZnJvbSAnLi9jdXN0b2RpYWxMaWdodG5pbmcnO1xuaW1wb3J0IHsgSUxpZ2h0bmluZ1dhbGxldCB9IGZyb20gJy4vbGlnaHRuaW5nJztcblxuLyoqXG4gKiBSZXR1cm5zIGN1c3RvZGlhbCBvciBzZWxmIGN1c3RvZGlhbCBsaWdodG5pbmcgd2FsbGV0IGRlcGVuZHMgb24gd2FsbGV0IHR5cGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRMaWdodG5pbmdXYWxsZXQod2FsbGV0OiBzZGtjb3JlLklXYWxsZXQpOiBJTGlnaHRuaW5nV2FsbGV0IHtcbiAgaWYgKHdhbGxldC5iYXNlQ29pbi5nZXRGYW1pbHkoKSAhPT0gJ2xuYnRjJykge1xuICAgIHRocm93IG5ldyBFcnJvcihgaW52YWxpZCBjb2luIGZvciBsaWdodG5pbmcgd2FsbGV0OiAke3dhbGxldC5iYXNlQ29pbi5nZXRGYW1pbHkoKX1gKTtcbiAgfVxuXG4gIHN3aXRjaCAod2FsbGV0LnR5cGUoKSkge1xuICAgIGNhc2UgJ2N1c3RvZGlhbCc6XG4gICAgICByZXR1cm4gbmV3IEN1c3RvZGlhbExpZ2h0bmluZ1dhbGxldCh3YWxsZXQpO1xuICAgIGNhc2UgJ2hvdCc6XG4gICAgICByZXR1cm4gbmV3IFNlbGZDdXN0b2RpYWxMaWdodG5pbmdXYWxsZXQod2FsbGV0KTtcbiAgICBkZWZhdWx0OlxuICAgICAgdGhyb3cgbmV3IEVycm9yKGBpbnZhbGlkIHdhbGxldCB0eXBlICR7d2FsbGV0LnR5cGUoKX0gZm9yIGxpZ2h0bmluZyBjb2luYCk7XG4gIH1cbn1cbiJdfQ==
|
package/package.json
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bitgo-beta/abstract-lightning",
|
|
3
|
-
"version": "1.0.0-alpha.
|
|
3
|
+
"version": "1.0.0-alpha.140",
|
|
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",
|
|
7
7
|
"scripts": {
|
|
8
8
|
"build": "yarn tsc --build --incremental --verbose .",
|
|
9
|
+
"test": "yarn unit-test",
|
|
10
|
+
"unit-test": "nyc -- mocha --recursive test",
|
|
9
11
|
"fmt": "prettier --write .",
|
|
10
12
|
"check-fmt": "prettier --check .",
|
|
11
13
|
"clean": "rm -r ./dist",
|
|
@@ -37,8 +39,15 @@
|
|
|
37
39
|
]
|
|
38
40
|
},
|
|
39
41
|
"dependencies": {
|
|
40
|
-
"@bitgo-beta/sdk-core": "2.4.1-alpha.
|
|
41
|
-
"@bitgo-beta/
|
|
42
|
+
"@bitgo-beta/sdk-core": "2.4.1-alpha.286",
|
|
43
|
+
"@bitgo-beta/statics": "10.0.1-alpha.286",
|
|
44
|
+
"@bitgo-beta/utxo-lib": "4.0.1-alpha.287",
|
|
45
|
+
"@bitgo/public-types": "4.17.0",
|
|
46
|
+
"bs58check": "^2.1.2",
|
|
47
|
+
"fp-ts": "^2.12.2",
|
|
48
|
+
"io-ts": "npm:@bitgo-forks/io-ts@2.1.4",
|
|
49
|
+
"io-ts-types": "^0.5.16",
|
|
50
|
+
"macaroon": "^3.0.4"
|
|
42
51
|
},
|
|
43
|
-
"gitHead": "
|
|
52
|
+
"gitHead": "1fbc3e136a340aba3e587c812623d576f967d4b8"
|
|
44
53
|
}
|