bitmask-core 1.0.0-beta.9 → 1.0.1-beta

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/rgb.js CHANGED
@@ -17,13 +17,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
17
17
  }) : function(o, v) {
18
18
  o["default"] = v;
19
19
  });
20
- var __importStar = (this && this.__importStar) || function (mod) {
21
- if (mod && mod.__esModule) return mod;
22
- var result = {};
23
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
24
- __setModuleDefault(result, mod);
25
- return result;
26
- };
20
+ var __importStar = (this && this.__importStar) || (function () {
21
+ var ownKeys = function(o) {
22
+ ownKeys = Object.getOwnPropertyNames || function (o) {
23
+ var ar = [];
24
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
25
+ return ar;
26
+ };
27
+ return ownKeys(o);
28
+ };
29
+ return function (mod) {
30
+ if (mod && mod.__esModule) return mod;
31
+ var result = {};
32
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
33
+ __setModuleDefault(result, mod);
34
+ return result;
35
+ };
36
+ })();
27
37
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
28
38
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
29
39
  return new (P || (P = Promise))(function (resolve, reject) {
package/wallet.js CHANGED
@@ -15,13 +15,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
15
15
  }) : function(o, v) {
16
16
  o["default"] = v;
17
17
  });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
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
+ })();
25
35
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
36
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
37
  return new (P || (P = Promise))(function (resolve, reject) {
package/bitcoin.d.ts.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"bitcoin.d.ts","sourceRoot":"","sources":["bitcoin.ts"],"names":[],"mappings":"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"}
package/bitcoin.ts DELETED
@@ -1,317 +0,0 @@
1
- // Methods meant to work with BDK defined within the web::bitcoin module from bitmask-core:
2
- // https://github.com/diba-io/bitmask-core/blob/development/src/web.rs
3
-
4
- import * as BMC from "./bitmask_core";
5
- import { getEnv, getNetwork, Network } from "./constants";
6
-
7
- export const hashPassword = (password: string) => BMC.hash_password(password);
8
-
9
- export const decryptWallet = async (
10
- hash: string,
11
- encryptedDescriptors: string,
12
- seedPassword = ""
13
- ): Promise<Vault> =>
14
- JSON.parse(
15
- await BMC.decrypt_wallet(hash, encryptedDescriptors, seedPassword)
16
- );
17
-
18
- export const upgradeWallet = async (
19
- hash: string,
20
- encryptedDescriptors: string,
21
- seedPassword = ""
22
- ): Promise<string> =>
23
- JSON.parse(
24
- await BMC.upgrade_wallet(hash, encryptedDescriptors, seedPassword)
25
- );
26
-
27
- export const syncWallets = async (): Promise<void> => BMC.sync_wallets();
28
-
29
- export const newWallet = async (
30
- hash: string,
31
- seedPassword: string
32
- ): Promise<string> => JSON.parse(await BMC.new_wallet(hash, seedPassword));
33
-
34
- export const encryptWallet = async (
35
- mnemonic: string,
36
- hash: string,
37
- seedPassword: string
38
- ): Promise<string> =>
39
- JSON.parse(await BMC.encrypt_wallet(mnemonic, hash, seedPassword));
40
-
41
- export const getWalletData = async (
42
- descriptor: string,
43
- changeDescriptor?: string
44
- ): Promise<WalletData> =>
45
- JSON.parse(await BMC.get_wallet_data(descriptor, changeDescriptor));
46
-
47
- export const getNewAddress = async (
48
- descriptor: string,
49
- changeDescriptor?: string
50
- ): Promise<string> =>
51
- JSON.parse(await BMC.get_new_address(descriptor, changeDescriptor));
52
-
53
- export const sendSats = async (
54
- descriptor: string,
55
- changeDescriptor: string,
56
- address: string,
57
- amount: bigint,
58
- broadcast: boolean,
59
- feeRate: number
60
- ): Promise<TransactionData> =>
61
- JSON.parse(
62
- await BMC.send_sats(
63
- descriptor,
64
- changeDescriptor,
65
- address,
66
- amount,
67
- broadcast,
68
- feeRate
69
- )
70
- );
71
-
72
- export const fundVault = async (
73
- descriptor: string,
74
- changeDescriptor: string,
75
- rgbAddress: string,
76
- broadcast: boolean,
77
- feeRate?: number
78
- ): Promise<FundVaultDetails> =>
79
- JSON.parse(
80
- await BMC.fund_vault(
81
- descriptor,
82
- changeDescriptor,
83
- rgbAddress,
84
- broadcast,
85
- feeRate
86
- )
87
- );
88
-
89
- export const getAssetsVault = async (
90
- rgbDescriptorXpub: string
91
- ): Promise<FundVaultDetails> =>
92
- JSON.parse(await BMC.get_assets_vault(rgbDescriptorXpub));
93
-
94
- export const drainWallet = async (
95
- destination: string,
96
- descriptor: string,
97
- changeDescriptor?: string,
98
- feeRate?: number
99
- ): Promise<TransactionData> =>
100
- JSON.parse(
101
- await BMC.drain_wallet(destination, descriptor, changeDescriptor, feeRate)
102
- );
103
-
104
- export const bumpFee = async (
105
- txid: string,
106
- feeRate: number,
107
- broadcast: boolean,
108
- descriptor: string,
109
- changeDescriptor?: string
110
- ): Promise<TransactionData> =>
111
- JSON.parse(
112
- await BMC.bump_fee(txid, feeRate, descriptor, changeDescriptor, broadcast)
113
- );
114
-
115
- // Core type interfaces based on structs defined within the bitmask-core Rust crate:
116
- // https://github.com/diba-io/bitmask-core/blob/development/src/structs.rs
117
-
118
- export interface PrivateWalletData {
119
- xprvkh: string;
120
- btcDescriptorXprv: string;
121
- btcChangeDescriptorXprv: string;
122
- rgbDescriptorXprv: string;
123
- nostrPrv: string;
124
- nostrNsec: string;
125
- }
126
-
127
- export interface PublicWalletData {
128
- xpubkh: string;
129
- btcDescriptorXpub: string;
130
- btcChangeDescriptorXpub: string;
131
- rgbDescriptorXpub: string;
132
- nostrPub: string;
133
- nostrNpub: string;
134
- }
135
-
136
- export interface Vault {
137
- mnemonic: string;
138
- private: PrivateWalletData;
139
- public: PublicWalletData;
140
- }
141
-
142
- export interface Transaction extends WalletTransaction {
143
- amount: number;
144
- asset?: string;
145
- assetType: string;
146
- fee: number;
147
- message?: string;
148
- note?: string;
149
- }
150
-
151
- export interface Activity extends Transaction {
152
- id: string;
153
- date: number;
154
- action: string;
155
- status: string;
156
- lightning?: boolean;
157
- sender?: {
158
- name: string;
159
- address: string;
160
- };
161
- recipient?: {
162
- name: string;
163
- address: string;
164
- invoice: string;
165
- };
166
- }
167
-
168
- export interface TransactionDetails extends Transaction {
169
- sender: {
170
- name: string;
171
- address: string;
172
- };
173
- recipient: {
174
- name: string;
175
- address: string;
176
- invoice: string;
177
- };
178
- }
179
-
180
- export interface TransactionData {
181
- details: TransactionDataDetails;
182
- vsize: number;
183
- feeRate: number;
184
- }
185
-
186
- export interface TransactionDataDetails {
187
- transaction?: Transaction;
188
- txid: string;
189
- received: number;
190
- sent: number;
191
- fee: number;
192
- confirmationTime?: ConfirmationTime;
193
- confirmed?: boolean;
194
- }
195
-
196
- export interface ConfirmationTime {
197
- height: number;
198
- timestamp: number;
199
- }
200
-
201
- export interface WalletTransaction {
202
- txid: string;
203
- received: number;
204
- sent: number;
205
- fee: number;
206
- confirmed: boolean;
207
- confirmationTime: ConfirmationTime;
208
- vsize: number;
209
- feeRate: number;
210
- }
211
-
212
- export interface WalletBalance {
213
- immature: number;
214
- trustedPending: number;
215
- untrustedPending: number;
216
- confirmed: number;
217
- }
218
-
219
- export interface WalletData {
220
- wallet?: string;
221
- name: string;
222
- address: string;
223
- balance: WalletBalance;
224
- transactions: WalletTransaction[];
225
- utxos: string[];
226
- }
227
-
228
- export interface FundVaultDetails {
229
- rgbOutput?: string;
230
- isFunded: boolean;
231
- fundTxid?: string;
232
- fundFee?: number;
233
- }
234
-
235
- export type FeeEstimates = Record<string, number>;
236
-
237
- export async function fetchFeeEstimates(): Promise<FeeEstimates> {
238
- const net = await getNetwork();
239
-
240
- let envKey: string;
241
- switch (net) {
242
- case "bitcoin":
243
- envKey = "BITCOIN_EXPLORER_API_MAINNET";
244
- break;
245
- case "testnet":
246
- envKey = "BITCOIN_EXPLORER_API_TESTNET";
247
- break;
248
- case "signet":
249
- envKey = "BITCOIN_EXPLORER_API_SIGNET";
250
- break;
251
- case "regtest":
252
- envKey = "BITCOIN_EXPLORER_API_REGTEST";
253
- break;
254
- default:
255
- // Fallback to signet if unknown string is returned
256
- envKey = "BITCOIN_EXPLORER_API_SIGNET";
257
- break;
258
- }
259
-
260
- const base = await getEnv(envKey);
261
- if (!base) {
262
- throw new Error(`fee-estimates: missing env ${envKey} for network ${net}`);
263
- }
264
-
265
- const baseUrl = (base || "").replace(/\/$/, "");
266
- const url = `${baseUrl}/fee-estimates`;
267
- const resp = await fetch(url, { method: "GET" });
268
- if (!resp.ok) {
269
- const text = await resp.text().catch(() => "");
270
- throw new Error(`fee-estimates fetch failed ${resp.status}: ${text}`);
271
- }
272
- return (await resp.json()) as FeeEstimates;
273
- }
274
-
275
- export function feeFromRate(vbytes: number, satPerVb: number): number {
276
- return Math.ceil(vbytes * satPerVb);
277
- }
278
-
279
- /**
280
- * Rough vbytes guesser for swap/bid PSBTs when you don't yet know exact inputs/outputs.
281
- * Prefer passing a conservative bound to avoid underpaying relays:
282
- * - Default assumes ~2 inputs, ~3 outputs, taproot heavy mix, returns ~400 vB.
283
- * - Scale linearly for more inputs/outputs.
284
- *
285
- * If you know inputs/outputs counts beforehand, pass them to tighten the estimate.
286
- */
287
- export function guessSwapVbytes(
288
- inputs = 2,
289
- outputs = 3,
290
- taprootHeavy = true
291
- ): number {
292
- // Heuristic base (conservative): taproot-heavy ~180 vB per input, ~34 vB per output, +10 overhead
293
- // Non-taproot may be slightly bigger; this errs on the safe side.
294
- const perIn = taprootHeavy ? 180 : 200;
295
- const perOut = 34;
296
- const overhead = 10;
297
- // Ensure a floor to avoid extremely small estimates in edge cases
298
- const est = inputs * perIn + outputs * perOut + overhead;
299
- return Math.max(est, 300);
300
- }
301
-
302
- /**
303
- * Convenience: get a safe absolute fee quote for a swap given a target confirmation bucket.
304
- * - bucket can be "1","2","3","6","144", etc., matching Esplora keys.
305
- * - vbytesEstimate can be computed via guessSwapVbytes() or a tighter UI estimate.
306
- * - Adds a small 10% safety margin on the feerate to reduce min-relay rejections.
307
- */
308
- export async function quoteSwapFeeSats(
309
- bucket: string,
310
- vbytesEstimate: number
311
- ): Promise<{ rate: number; fee: number }> {
312
- const estimates = await fetchFeeEstimates();
313
- const satPerVb = estimates[bucket] ?? estimates["6"] ?? 1.0;
314
- const paddedRate = Math.max(1.0, satPerVb * 1.1); // 10% headroom
315
- const fee = feeFromRate(vbytesEstimate, paddedRate);
316
- return { rate: paddedRate, fee };
317
- }
package/bp.d.ts.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"bp.d.ts","sourceRoot":"","sources":["bp.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,gBAAgB,EAAE,sBAAsB,EAAE,iBAAiB,EAAC,MAAM,WAAW,CAAC;AAEtF,eAAO,MAAM,WAAW,eACR,MAAM,WACT,MAAM,QACT,MAAM,WACH,MAAM,WACN,MAAM,EAAE,KAClB,QAAQ,eAAe,CAAoF,CAAC;AAE/G,eAAO,MAAM,YAAY,eACT,MAAM,WACT,MAAM,WACN,MAAM,EAAE,aACN,OAAO,cACN,MAAM,GAAG,IAAI,mBACR,OAAO,GAAG,IAAI,KAChC,QAAQ,gBAAgB,CAOzB,CAAC;AAEH,eAAO,MAAM,eAAe,eACZ,MAAM,KACnB,QAAQ,OAAO,CAAsD,CAAC;AAEzE,eAAO,MAAM,gBAAgB,eACb,MAAM,KACnB,QAAQ,OAAO,CAAuD,CAAC;AAE1E,eAAO,MAAM,0BAA0B,SAC7B,MAAM,cACA,MAAM,kBACF,MAAM,KACvB,QAAQ,mBAAmB,CAA2F,CAAC;AAE1H,eAAO,MAAM,YAAY,eACT,MAAM,KACnB,QAAQ,UAAU,CAAqD,CAAC;AAG3E,MAAM,WAAW,eAAe;IAC5B,OAAO,EAAE,sBAAsB,CAAC;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC1B,SAAS,EAAE,MAAM,CAAC;CACrB;AAGD,MAAM,WAAW,UAAU;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,aAAa,CAAC;IACvB,YAAY,EAAE,iBAAiB,EAAE,CAAC;IAClC,KAAK,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;CACf"}
package/bp.ts DELETED
@@ -1,72 +0,0 @@
1
-
2
- // BP
3
- import * as BMC from "./bitmask_core";
4
- import {FundVaultDetails, TransactionDataDetails, WalletTransaction} from "./bitcoin";
5
-
6
- export const transferBtc = async (
7
- nostrHexSk: string,
8
- address: string,
9
- sats: bigint,
10
- feeRate: number,
11
- secrets: string[],
12
- ): Promise<TransactionData> => JSON.parse(await BMC.transfer_sats(nostrHexSk,address, sats, feeRate, secrets));
13
-
14
- export const fundRgbVault = async (
15
- nostrHexSk: string,
16
- feeRate: number,
17
- secrets: string[],
18
- broadcast: boolean,
19
- fundValue?: bigint | null,
20
- coordinatorFee?: boolean | null,
21
- ): Promise<FundVaultDetails> => JSON.parse(await BMC.fund_rgb_vault(
22
- nostrHexSk,
23
- feeRate,
24
- secrets,
25
- broadcast,
26
- fundValue || null,
27
- coordinatorFee || false,
28
- ));
29
-
30
- export const backupBtcWallet = async (
31
- nostrHexSk: string,
32
- ): Promise<boolean> => JSON.parse(await BMC.backup_btc_data(nostrHexSk));
33
-
34
- export const restoreBtcWallet = async (
35
- nostrHexSk: string,
36
- ): Promise<boolean> => JSON.parse(await BMC.restore_btc_data(nostrHexSk));
37
-
38
- export const recoverFundsFromBadWallets = async (
39
- seed: string,
40
- passPhrase: string,
41
- recoverAddress: string,
42
- ): Promise<RecoverVaultDetails> => JSON.parse(await BMC.recover_funds_from_bad_wallets(seed, passPhrase, recoverAddress));
43
-
44
- export const getBtcWallet = async (
45
- nostrHexSk: string,
46
- ): Promise<WalletData> => JSON.parse(await BMC.get_btc_wallet(nostrHexSk));
47
-
48
-
49
- export interface TransactionData {
50
- details: TransactionDataDetails;
51
- vsize: number;
52
- feeRate: number;
53
- }
54
-
55
- export interface WalletBalance {
56
- confirmed: number;
57
- }
58
-
59
-
60
- export interface WalletData {
61
- wallet?: string;
62
- name: string;
63
- address: string;
64
- balance: WalletBalance;
65
- transactions: WalletTransaction[];
66
- utxos: string[];
67
- }
68
-
69
- export interface RecoverVaultDetails {
70
- txid: string;
71
- fee: number;
72
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"carbonado.d.ts","sourceRoot":"","sources":["carbonado.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,KAAK,eACJ,MAAM,QACZ,UAAU,SACT,OAAO,SACP,MAAM,SACN,UAAU,KAChB,QAAQ,IAAI,CAAyD,CAAC;AAEzE,eAAO,MAAM,QAAQ,eACP,MAAM,UACV,MAAM,KACb,QAAQ,UAAU,CAAqC,CAAC;AAE3D,eAAO,MAAM,gBAAgB,eACf,MAAM,UACV,MAAM,KACb,QAAQ,YAAY,CAA8C,CAAC;AAEtE,eAAO,MAAM,SAAS,UAAW,UAAU,KAAG,MAA+B,CAAC;AAC9E,eAAO,MAAM,YAAY,UAAW,UAAU,KAAG,MACvB,CAAC;AAE3B,eAAO,MAAM,SAAS,QAAS,MAAM,KAAG,UAAiC,CAAC;AAC1E,eAAO,MAAM,YAAY,QAAS,MAAM,KAAG,UAAoC,CAAC;AAEhF,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,UAAU,CAAC;CACtB"}
package/carbonado.ts DELETED
@@ -1,34 +0,0 @@
1
- // Methods meant to work with Carbonado storage defined within the web::carbonado module from bitmask-core:
2
- // https://github.com/diba-io/bitmask-core/blob/development/src/web.rs
3
-
4
- import * as BMC from "./bitmask_core";
5
-
6
- export const store = async (
7
- nostrHexSk: string,
8
- data: Uint8Array,
9
- force: boolean,
10
- name?: string,
11
- meta?: Uint8Array
12
- ): Promise<void> => BMC.store(nostrHexSk, name || "", data, force, meta);
13
-
14
- export const retrieve = (
15
- nostrHexSk: string,
16
- lookup: string
17
- ): Promise<Uint8Array> => BMC.retrieve(nostrHexSk, lookup);
18
-
19
- export const retrieveMetadata = (
20
- nostrHexSk: string,
21
- lookup: string
22
- ): Promise<FileMetadata> => BMC.retrieve_metadata(nostrHexSk, lookup);
23
-
24
- export const encodeHex = (bytes: Uint8Array): string => BMC.encode_hex(bytes);
25
- export const encodeBase64 = (bytes: Uint8Array): string =>
26
- BMC.encode_base64(bytes);
27
-
28
- export const decodeHex = (str: string): Uint8Array => BMC.decode_hex(str);
29
- export const decodeBase64 = (str: string): Uint8Array => BMC.decode_base64(str);
30
-
31
- export interface FileMetadata {
32
- filename: string;
33
- metadata: Uint8Array;
34
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["constants.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,UAAU,QAAa,QAAQ,MAAM,CACb,CAAC;AAEtC,eAAO,MAAM,aAAa,YAAmB,OAAO,KAAG,QAAQ,IAAI,CAC3B,CAAC;AAEzC,eAAO,MAAM,MAAM,QAAe,MAAM,KAAG,QAAQ,MAAM,CACrB,CAAC;AAErC,eAAO,MAAM,MAAM,QAAe,MAAM,SAAS,MAAM,KAAG,QAAQ,IAAI,CAC7C,CAAC;AAE1B,oBAAY,OAAO;IACjB,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,OAAO,YAAY;CACpB;AAID,eAAO,MAAM,UAAU,kBACkC,CAAC;AAC1D,eAAO,IAAI,OAAO,SAAQ,CAAC;AAC3B,eAAO,IAAI,SAAS,SAAQ,CAAC;AAC7B,eAAO,IAAI,OAAO,SAAQ,CAAC;AAE3B,eAAO,MAAM,IAAI,qBAA4B,MAAM,kBAsElD,CAAC"}
package/constants.ts DELETED
@@ -1,112 +0,0 @@
1
- // Methods meant to work with bitmask-core constants defined within the web::constants module from bitmask-core:
2
- // https://github.com/diba-io/bitmask-core/blob/development/src/web.rs
3
-
4
- import initBMC, * as BMC from "./bitmask_core";
5
-
6
- export const getNetwork = async (): Promise<string> =>
7
- JSON.parse(await BMC.get_network());
8
-
9
- export const switchNetwork = async (network: Network): Promise<void> =>
10
- BMC.switch_network(network.toString());
11
-
12
- export const getEnv = async (key: string): Promise<string> =>
13
- JSON.parse(await BMC.get_env(key));
14
-
15
- export const setEnv = async (key: string, value: string): Promise<void> =>
16
- BMC.set_env(key, value);
17
-
18
- export enum Network {
19
- bitcoin = "bitcoin",
20
- testnet = "testnet",
21
- signet = "signet",
22
- regtest = "regtest",
23
- }
24
- type NetworkType = typeof Network;
25
- type NetworkKeyType = keyof NetworkType;
26
-
27
- export const DISABLE_LN =
28
- process.env?.DISABLE_LN === "true" ? true : false || "";
29
- export let LNDHUBX = false;
30
- export let CARBONADO = false;
31
- export let BITMASK = false;
32
-
33
- export const init = async (networkOverride?: string) => {
34
- try {
35
- if (networkOverride) {
36
- await switchNetwork(Network[networkOverride as NetworkKeyType]);
37
- }
38
- await initBMC();
39
-
40
- const network = await getNetwork();
41
- if (network === "bitcoin" && process.env.PROD_LNDHUB_ENDPOINT) {
42
- await setEnv("LNDHUB_ENDPOINT", process.env.PROD_LNDHUB_ENDPOINT);
43
- } else if (process.env.TEST_LNDHUB_ENDPOINT) {
44
- await setEnv("LNDHUB_ENDPOINT", process.env.TEST_LNDHUB_ENDPOINT);
45
- }
46
- if (process.env.CARBONADO_ENDPOINT) {
47
- await setEnv("CARBONADO_ENDPOINT", process.env.CARBONADO_ENDPOINT);
48
- }
49
- if (process.env.BITMASK_ENDPOINT) {
50
- await setEnv("BITMASK_ENDPOINT", process.env.BITMASK_ENDPOINT);
51
- }
52
- if (process.env.BITCOIN_EXPLORER_API_MAINNET) {
53
- await setEnv(
54
- "BITCOIN_EXPLORER_API_MAINNET",
55
- process.env.BITCOIN_EXPLORER_API_MAINNET
56
- );
57
- }
58
- if (process.env.BITCOIN_EXPLORER_API_TESTNET) {
59
- await setEnv(
60
- "BITCOIN_EXPLORER_API_TESTNET",
61
- process.env.BITCOIN_EXPLORER_API_TESTNET
62
- );
63
- }
64
- } catch (err) {
65
- console.error("Error in setEnv", err);
66
- }
67
-
68
- const lndhubx = await getEnv("LNDHUB_ENDPOINT");
69
- const carbonado = await getEnv("CARBONADO_ENDPOINT");
70
- const bitmask = await getEnv("BITMASK_ENDPOINT");
71
-
72
- try {
73
- if (!DISABLE_LN) {
74
- await fetch(`${lndhubx}/nodeinfo`);
75
- LNDHUBX = true;
76
- console.debug(`${lndhubx}/nodeinfo successfully reached`);
77
- }
78
- } catch (e) {
79
- LNDHUBX = false;
80
- console.warn("Could not reach lndhubx", lndhubx, e);
81
- }
82
- try {
83
- await fetch(`${carbonado}/status`);
84
- CARBONADO = true;
85
- console.debug(`${carbonado}/status successfully reached`);
86
- } catch (e) {
87
- CARBONADO = false;
88
- console.warn("Could not reach carbonado", carbonado, e);
89
- }
90
- try {
91
- await fetch(`${bitmask}/carbonado/status`);
92
- BITMASK = true;
93
- console.debug(`${bitmask}/status successfully reached`);
94
- } catch (e) {
95
- BITMASK = false;
96
- console.warn("Could not reach bitmask", bitmask, e);
97
- }
98
-
99
- console.debug(BMC.version(), "initialized");
100
- console.debug("Using LNDHubX endpoint:", lndhubx);
101
- console.debug("Using Carbonado endpoint:", carbonado);
102
- console.debug("Using bitmaskd endpoint:", bitmask);
103
- };
104
-
105
- const networkOverride = process.env.NETWORK_OVERRIDE;
106
-
107
- if (networkOverride) {
108
- const network = Network[networkOverride.toLowerCase() as keyof typeof Network];
109
- init(network);
110
- } else {
111
- init();
112
- }
package/index.d.ts.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAE/B,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AACrC,OAAO,KAAK,SAAS,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,SAAS,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,SAAS,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,OAAO,KAAK,GAAG,MAAM,OAAO,CAAC;AAC7B,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AAGnC,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AACrC,OAAO,KAAK,SAAS,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,SAAS,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,SAAS,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,OAAO,KAAK,GAAG,MAAM,OAAO,CAAC;AAC7B,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AACnC,OAAO,KAAK,EAAE,MAAM,MAAM,CAAC;AAE3B,YAAY,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;;;;;;;;;;;AAEvC,wBASE"}
package/index.ts DELETED
@@ -1,33 +0,0 @@
1
- import * as BMC from "./bitmask_core";
2
- export * from "./bitmask_core"; // kludge :c
3
-
4
- import * as bitcoin from "./bitcoin";
5
- import * as carbonado from "./carbonado";
6
- import * as constants from "./constants";
7
- import * as lightning from "./lightning";
8
- import * as nostr from "./nostr";
9
- import * as rgb from "./rgb";
10
- import * as wallet from "./wallet";
11
- import * as bp from "./bp";
12
-
13
- export * as bitcoin from "./bitcoin";
14
- export * as carbonado from "./carbonado";
15
- export * as constants from "./constants";
16
- export * as lightning from "./lightning";
17
- export * as nostr from "./nostr";
18
- export * as rgb from "./rgb";
19
- export * as wallet from "./wallet";
20
- export * as bp from "./bp";
21
-
22
- export type { WalletData } from "./bp";
23
-
24
- export default {
25
- BMC,
26
- bitcoin,
27
- carbonado,
28
- constants,
29
- lightning,
30
- nostr,
31
- rgb,
32
- wallet,
33
- };
@@ -1 +0,0 @@
1
- {"version":3,"file":"lightning.d.ts","sourceRoot":"","sources":["lightning.ts"],"names":[],"mappings":"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"}