@cogcoin/client 0.5.14 → 1.0.0

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.
Files changed (172) hide show
  1. package/README.md +80 -25
  2. package/dist/app-paths.d.ts +5 -6
  3. package/dist/app-paths.js +8 -16
  4. package/dist/art/balance.txt +10 -0
  5. package/dist/art/welcome.txt +16 -0
  6. package/dist/bitcoind/bootstrap/controller.d.ts +1 -0
  7. package/dist/bitcoind/bootstrap/controller.js +53 -1
  8. package/dist/bitcoind/client/follow-block-times.d.ts +1 -0
  9. package/dist/bitcoind/client/follow-block-times.js +1 -1
  10. package/dist/bitcoind/client/internal-types.d.ts +7 -3
  11. package/dist/bitcoind/client/managed-client.d.ts +4 -2
  12. package/dist/bitcoind/client/managed-client.js +14 -0
  13. package/dist/bitcoind/client/sync-engine.js +72 -11
  14. package/dist/bitcoind/hash-order.d.ts +4 -0
  15. package/dist/bitcoind/hash-order.js +13 -0
  16. package/dist/bitcoind/indexer-daemon-main.js +11 -3
  17. package/dist/bitcoind/normalize.js +3 -2
  18. package/dist/bitcoind/processing-start-height.d.ts +5 -0
  19. package/dist/bitcoind/processing-start-height.js +7 -0
  20. package/dist/bitcoind/progress/constants.d.ts +4 -0
  21. package/dist/bitcoind/progress/constants.js +4 -0
  22. package/dist/bitcoind/progress/controller.d.ts +2 -1
  23. package/dist/bitcoind/progress/controller.js +3 -3
  24. package/dist/bitcoind/progress/follow-scene.d.ts +6 -2
  25. package/dist/bitcoind/progress/follow-scene.js +29 -6
  26. package/dist/bitcoind/progress/formatting.d.ts +1 -0
  27. package/dist/bitcoind/progress/formatting.js +6 -0
  28. package/dist/bitcoind/progress/train-scene.js +37 -18
  29. package/dist/bitcoind/progress/tty-renderer.d.ts +6 -1
  30. package/dist/bitcoind/progress/tty-renderer.js +8 -4
  31. package/dist/bitcoind/rpc.d.ts +2 -1
  32. package/dist/bitcoind/rpc.js +3 -0
  33. package/dist/bitcoind/types.d.ts +16 -0
  34. package/dist/bytes.d.ts +1 -0
  35. package/dist/bytes.js +3 -0
  36. package/dist/cli/art.d.ts +2 -0
  37. package/dist/cli/art.js +37 -0
  38. package/dist/cli/commands/client-admin.d.ts +2 -0
  39. package/dist/cli/commands/client-admin.js +91 -0
  40. package/dist/cli/commands/follow.js +0 -2
  41. package/dist/cli/commands/mining-admin.js +6 -47
  42. package/dist/cli/commands/mining-read.js +11 -50
  43. package/dist/cli/commands/mining-runtime.js +38 -3
  44. package/dist/cli/commands/service-runtime.js +0 -2
  45. package/dist/cli/commands/status.js +8 -2
  46. package/dist/cli/commands/sync.js +51 -4
  47. package/dist/cli/commands/wallet-admin.js +142 -136
  48. package/dist/cli/commands/wallet-mutation.js +91 -79
  49. package/dist/cli/commands/wallet-read.js +15 -18
  50. package/dist/cli/context.js +4 -14
  51. package/dist/cli/mining-format.d.ts +0 -1
  52. package/dist/cli/mining-format.js +5 -37
  53. package/dist/cli/mining-json.d.ts +0 -18
  54. package/dist/cli/mining-json.js +0 -35
  55. package/dist/cli/mutation-command-groups.d.ts +1 -2
  56. package/dist/cli/mutation-command-groups.js +0 -5
  57. package/dist/cli/mutation-json.d.ts +24 -145
  58. package/dist/cli/mutation-json.js +30 -136
  59. package/dist/cli/mutation-resolved-json.d.ts +0 -7
  60. package/dist/cli/mutation-resolved-json.js +4 -10
  61. package/dist/cli/mutation-success.d.ts +2 -0
  62. package/dist/cli/mutation-success.js +11 -1
  63. package/dist/cli/mutation-text-format.js +1 -3
  64. package/dist/cli/output.d.ts +1 -1
  65. package/dist/cli/output.js +254 -231
  66. package/dist/cli/parse.d.ts +1 -1
  67. package/dist/cli/parse.js +93 -122
  68. package/dist/cli/preview-json.d.ts +17 -120
  69. package/dist/cli/preview-json.js +14 -97
  70. package/dist/cli/prompt.js +8 -13
  71. package/dist/cli/read-json.d.ts +15 -37
  72. package/dist/cli/read-json.js +44 -140
  73. package/dist/cli/runner.js +10 -13
  74. package/dist/cli/types.d.ts +8 -17
  75. package/dist/cli/types.js +0 -2
  76. package/dist/cli/wallet-format.d.ts +1 -0
  77. package/dist/cli/wallet-format.js +205 -144
  78. package/dist/cli/workflow-hints.d.ts +3 -3
  79. package/dist/cli/workflow-hints.js +11 -8
  80. package/dist/client/default-client.d.ts +3 -1
  81. package/dist/client/default-client.js +45 -2
  82. package/dist/client/factory.js +1 -1
  83. package/dist/client/initialization.js +23 -0
  84. package/dist/client/persistence.js +5 -5
  85. package/dist/client/store-adapter.js +1 -0
  86. package/dist/sqlite/checkpoints.d.ts +1 -0
  87. package/dist/sqlite/checkpoints.js +7 -0
  88. package/dist/sqlite/store.js +14 -1
  89. package/dist/types.d.ts +1 -0
  90. package/dist/wallet/coin-control.d.ts +41 -11
  91. package/dist/wallet/coin-control.js +100 -357
  92. package/dist/wallet/descriptor-normalization.d.ts +1 -3
  93. package/dist/wallet/descriptor-normalization.js +0 -16
  94. package/dist/wallet/lifecycle.d.ts +7 -99
  95. package/dist/wallet/lifecycle.js +513 -968
  96. package/dist/wallet/managed-core-wallet.d.ts +13 -0
  97. package/dist/wallet/managed-core-wallet.js +20 -0
  98. package/dist/wallet/mining/constants.d.ts +5 -12
  99. package/dist/wallet/mining/constants.js +5 -12
  100. package/dist/wallet/mining/control.d.ts +1 -13
  101. package/dist/wallet/mining/control.js +45 -349
  102. package/dist/wallet/mining/index.d.ts +3 -4
  103. package/dist/wallet/mining/index.js +1 -2
  104. package/dist/wallet/mining/runner.d.ts +179 -6
  105. package/dist/wallet/mining/runner.js +891 -501
  106. package/dist/wallet/mining/runtime-artifacts.js +23 -3
  107. package/dist/wallet/mining/sentence-protocol.d.ts +44 -0
  108. package/dist/wallet/mining/sentence-protocol.js +123 -0
  109. package/dist/wallet/mining/sentences.d.ts +4 -8
  110. package/dist/wallet/mining/sentences.js +3 -52
  111. package/dist/wallet/mining/state.d.ts +11 -6
  112. package/dist/wallet/mining/state.js +7 -6
  113. package/dist/wallet/mining/types.d.ts +2 -30
  114. package/dist/wallet/mining/visualizer.d.ts +31 -3
  115. package/dist/wallet/mining/visualizer.js +135 -13
  116. package/dist/wallet/read/context.d.ts +0 -2
  117. package/dist/wallet/read/context.js +119 -140
  118. package/dist/wallet/read/filter.js +2 -11
  119. package/dist/wallet/read/index.d.ts +1 -1
  120. package/dist/wallet/read/project.js +24 -77
  121. package/dist/wallet/read/types.d.ts +10 -25
  122. package/dist/wallet/reset.d.ts +0 -1
  123. package/dist/wallet/reset.js +60 -138
  124. package/dist/wallet/root-resolution.d.ts +1 -5
  125. package/dist/wallet/root-resolution.js +0 -18
  126. package/dist/wallet/runtime.d.ts +0 -6
  127. package/dist/wallet/runtime.js +0 -8
  128. package/dist/wallet/state/client-password-agent.js +208 -0
  129. package/dist/wallet/state/client-password.d.ts +65 -0
  130. package/dist/wallet/state/client-password.js +952 -0
  131. package/dist/wallet/state/crypto.d.ts +1 -20
  132. package/dist/wallet/state/crypto.js +0 -63
  133. package/dist/wallet/state/provider.d.ts +23 -11
  134. package/dist/wallet/state/provider.js +248 -290
  135. package/dist/wallet/state/storage.d.ts +2 -2
  136. package/dist/wallet/state/storage.js +48 -16
  137. package/dist/wallet/tx/anchor.d.ts +3 -28
  138. package/dist/wallet/tx/anchor.js +349 -1240
  139. package/dist/wallet/tx/bitcoin-transfer.d.ts +35 -0
  140. package/dist/wallet/tx/bitcoin-transfer.js +200 -0
  141. package/dist/wallet/tx/cog.d.ts +5 -1
  142. package/dist/wallet/tx/cog.js +149 -185
  143. package/dist/wallet/tx/common.d.ts +74 -10
  144. package/dist/wallet/tx/common.js +315 -138
  145. package/dist/wallet/tx/domain-admin.d.ts +3 -1
  146. package/dist/wallet/tx/domain-admin.js +61 -99
  147. package/dist/wallet/tx/domain-market.d.ts +5 -1
  148. package/dist/wallet/tx/domain-market.js +221 -228
  149. package/dist/wallet/tx/field.d.ts +4 -10
  150. package/dist/wallet/tx/field.js +84 -914
  151. package/dist/wallet/tx/identity-selector.d.ts +9 -3
  152. package/dist/wallet/tx/identity-selector.js +17 -35
  153. package/dist/wallet/tx/index.d.ts +3 -1
  154. package/dist/wallet/tx/index.js +2 -1
  155. package/dist/wallet/tx/register.d.ts +3 -1
  156. package/dist/wallet/tx/register.js +62 -220
  157. package/dist/wallet/tx/reputation.d.ts +3 -1
  158. package/dist/wallet/tx/reputation.js +58 -95
  159. package/dist/wallet/types.d.ts +8 -122
  160. package/package.json +5 -5
  161. package/dist/wallet/archive.d.ts +0 -4
  162. package/dist/wallet/archive.js +0 -41
  163. package/dist/wallet/mining/hook-protocol.d.ts +0 -47
  164. package/dist/wallet/mining/hook-protocol.js +0 -161
  165. package/dist/wallet/mining/hook-runner.js +0 -52
  166. package/dist/wallet/mining/hooks.d.ts +0 -38
  167. package/dist/wallet/mining/hooks.js +0 -520
  168. package/dist/wallet/state/explicit-lock.d.ts +0 -4
  169. package/dist/wallet/state/explicit-lock.js +0 -19
  170. package/dist/wallet/state/session.d.ts +0 -12
  171. package/dist/wallet/state/session.js +0 -23
  172. /package/dist/wallet/{mining/hook-runner.d.ts → state/client-password-agent.d.ts} +0 -0
@@ -1,12 +1,10 @@
1
1
  import { attachOrStartIndexerDaemon, probeIndexerDaemon } from "../bitcoind/indexer-daemon.js";
2
2
  import { attachOrStartManagedBitcoindService, probeManagedBitcoindService } from "../bitcoind/service.js";
3
3
  import { createRpcClient } from "../bitcoind/node.js";
4
- import type { ManagedCoreWalletReplicaStatus } from "../bitcoind/types.js";
4
+ import type { ManagedCoreWalletReplicaStatus, RpcListUnspentEntry } from "../bitcoind/types.js";
5
5
  import { type WalletRuntimePaths } from "./runtime.js";
6
- import { requestMiningGenerationPreemption } from "./mining/coordination.js";
7
6
  import { type WalletSecretProvider } from "./state/provider.js";
8
- import type { UnlockSessionStateV1, WalletStateV1 } from "./types.js";
9
- export declare const DEFAULT_UNLOCK_DURATION_MS: number;
7
+ import type { WalletStateV1 } from "./types.js";
10
8
  export interface WalletPrompter {
11
9
  readonly isInteractive: boolean;
12
10
  writeLine(message: string): void;
@@ -15,37 +13,17 @@ export interface WalletPrompter {
15
13
  clearSensitiveDisplay?(scope: "mnemonic-reveal" | "restore-mnemonic-entry"): void | Promise<void>;
16
14
  }
17
15
  export interface WalletInitializationResult {
16
+ passwordAction: "created" | "migrated" | "already-configured";
17
+ walletAction: "initialized" | "already-initialized";
18
18
  walletRootId: string;
19
19
  fundingAddress: string;
20
- unlockUntilUnixMs: number;
21
- state: WalletStateV1;
22
- }
23
- export interface WalletUnlockResult {
24
- unlockUntilUnixMs: number;
25
- state: WalletStateV1;
26
- source: "primary" | "backup";
27
- }
28
- export interface LoadedUnlockedWalletState {
29
- session: UnlockSessionStateV1;
30
- state: WalletStateV1;
31
- source: "primary" | "backup";
32
- }
33
- export interface WalletExportResult {
34
- archivePath: string;
35
- walletRootId: string;
36
- }
37
- export interface WalletImportResult {
38
- archivePath: string;
39
- walletRootId: string;
40
- fundingAddress: string;
41
- unlockUntilUnixMs: number;
42
20
  state: WalletStateV1;
43
21
  }
44
22
  export interface WalletRestoreResult {
23
+ passwordAction: "created" | "migrated" | "already-configured";
45
24
  seedName?: string | null;
46
25
  walletRootId: string;
47
26
  fundingAddress: string;
48
- unlockUntilUnixMs: number;
49
27
  state: WalletStateV1;
50
28
  warnings?: string[];
51
29
  }
@@ -113,20 +91,12 @@ interface WalletLifecycleRpcClient {
113
91
  }>;
114
92
  unloadWallet?(walletName: string, loadOnStartup?: boolean): Promise<null>;
115
93
  listWallets(): Promise<string[]>;
94
+ listUnspent(walletName: string, minConf?: number): Promise<RpcListUnspentEntry[]>;
116
95
  getBlockchainInfo(): Promise<{
117
96
  blocks: number;
118
97
  headers: number;
119
98
  }>;
120
99
  }
121
- declare function readManagedSnapshotTip(options: {
122
- dataDir: string;
123
- databasePath: string;
124
- walletRootId: string;
125
- }): Promise<{
126
- nodeBestHeight: number | null;
127
- snapshotHeight: number | null;
128
- }>;
129
- export declare function parseUnlockDurationToMs(raw: string | null | undefined): number;
130
100
  export declare function verifyManagedCoreWalletReplica(state: WalletStateV1, dataDir: string, dependencies?: {
131
101
  nodeHandle?: {
132
102
  rpc: Parameters<typeof createRpcClient>[0];
@@ -134,30 +104,11 @@ export declare function verifyManagedCoreWalletReplica(state: WalletStateV1, dat
134
104
  attachService?: typeof attachOrStartManagedBitcoindService;
135
105
  rpcFactory?: (config: Parameters<typeof createRpcClient>[0]) => WalletLifecycleRpcClient;
136
106
  }): Promise<ManagedCoreWalletReplicaStatus>;
137
- export declare function loadUnlockedWalletState(options?: {
138
- provider?: WalletSecretProvider;
139
- nowUnixMs?: number;
140
- paths?: WalletRuntimePaths;
141
- dataDir?: string;
142
- attachService?: typeof attachOrStartManagedBitcoindService;
143
- rpcFactory?: (config: Parameters<typeof createRpcClient>[0]) => WalletLifecycleRpcClient;
144
- }): Promise<LoadedUnlockedWalletState | null>;
145
- export declare function loadOrAutoUnlockWalletState(options?: {
146
- provider?: WalletSecretProvider;
147
- nowUnixMs?: number;
148
- unlockDurationMs?: number;
149
- paths?: WalletRuntimePaths;
150
- dataDir?: string;
151
- controlLockHeld?: boolean;
152
- attachService?: typeof attachOrStartManagedBitcoindService;
153
- rpcFactory?: (config: Parameters<typeof createRpcClient>[0]) => WalletLifecycleRpcClient;
154
- }): Promise<LoadedUnlockedWalletState | null>;
155
107
  export declare function initializeWallet(options: {
156
108
  dataDir: string;
157
109
  provider?: WalletSecretProvider;
158
110
  prompter: WalletPrompter;
159
111
  nowUnixMs?: number;
160
- unlockDurationMs?: number;
161
112
  paths?: WalletRuntimePaths;
162
113
  attachService?: typeof attachOrStartManagedBitcoindService;
163
114
  rpcFactory?: (config: Parameters<typeof createRpcClient>[0]) => WalletLifecycleRpcClient;
@@ -168,54 +119,11 @@ export declare function showWalletMnemonic(options: {
168
119
  nowUnixMs?: number;
169
120
  paths?: WalletRuntimePaths;
170
121
  }): Promise<void>;
171
- export declare function unlockWallet(options?: {
172
- provider?: WalletSecretProvider;
173
- nowUnixMs?: number;
174
- unlockDurationMs?: number;
175
- paths?: WalletRuntimePaths;
176
- }): Promise<WalletUnlockResult>;
177
- export declare function lockWallet(options: {
178
- dataDir: string;
179
- provider?: WalletSecretProvider;
180
- nowUnixMs?: number;
181
- paths?: WalletRuntimePaths;
182
- attachService?: typeof attachOrStartManagedBitcoindService;
183
- rpcFactory?: (config: Parameters<typeof createRpcClient>[0]) => WalletLifecycleRpcClient;
184
- }): Promise<{
185
- walletRootId: string | null;
186
- coreLocked: boolean;
187
- }>;
188
- export declare function exportWallet(options: {
189
- archivePath: string;
190
- dataDir: string;
191
- databasePath: string;
192
- provider?: WalletSecretProvider;
193
- prompter: WalletPrompter;
194
- nowUnixMs?: number;
195
- paths?: WalletRuntimePaths;
196
- attachService?: typeof attachOrStartManagedBitcoindService;
197
- rpcFactory?: (config: Parameters<typeof createRpcClient>[0]) => WalletLifecycleRpcClient;
198
- readSnapshotTip?: typeof readManagedSnapshotTip;
199
- }): Promise<WalletExportResult>;
200
- export declare function importWallet(options: {
201
- archivePath: string;
202
- dataDir: string;
203
- databasePath: string;
204
- provider?: WalletSecretProvider;
205
- prompter: WalletPrompter;
206
- nowUnixMs?: number;
207
- unlockDurationMs?: number;
208
- paths?: WalletRuntimePaths;
209
- attachService?: typeof attachOrStartManagedBitcoindService;
210
- attachIndexerDaemon?: typeof attachOrStartIndexerDaemon;
211
- rpcFactory?: (config: Parameters<typeof createRpcClient>[0]) => WalletLifecycleRpcClient;
212
- }): Promise<WalletImportResult>;
213
122
  export declare function restoreWalletFromMnemonic(options: {
214
123
  dataDir: string;
215
124
  provider?: WalletSecretProvider;
216
125
  prompter: WalletPrompter;
217
126
  nowUnixMs?: number;
218
- unlockDurationMs?: number;
219
127
  paths?: WalletRuntimePaths;
220
128
  attachService?: typeof attachOrStartManagedBitcoindService;
221
129
  rpcFactory?: (config: Parameters<typeof createRpcClient>[0]) => WalletLifecycleRpcClient;
@@ -243,6 +151,6 @@ export declare function repairWallet(options: {
243
151
  rpcFactory?: (config: Parameters<typeof createRpcClient>[0]) => WalletLifecycleRpcClient;
244
152
  attachIndexerDaemon?: typeof attachOrStartIndexerDaemon;
245
153
  probeIndexerDaemon?: typeof probeIndexerDaemon;
246
- requestMiningPreemption?: typeof requestMiningGenerationPreemption;
154
+ requestMiningPreemption?: typeof import("./mining/coordination.js").requestMiningGenerationPreemption;
247
155
  startBackgroundMining?: typeof import("./mining/runner.js").startBackgroundMining;
248
156
  }): Promise<WalletRepairResult>;