@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.
- package/README.md +80 -25
- package/dist/app-paths.d.ts +5 -6
- package/dist/app-paths.js +8 -16
- package/dist/art/balance.txt +10 -0
- package/dist/art/welcome.txt +16 -0
- package/dist/bitcoind/bootstrap/controller.d.ts +1 -0
- package/dist/bitcoind/bootstrap/controller.js +53 -1
- package/dist/bitcoind/client/follow-block-times.d.ts +1 -0
- package/dist/bitcoind/client/follow-block-times.js +1 -1
- package/dist/bitcoind/client/internal-types.d.ts +7 -3
- package/dist/bitcoind/client/managed-client.d.ts +4 -2
- package/dist/bitcoind/client/managed-client.js +14 -0
- package/dist/bitcoind/client/sync-engine.js +72 -11
- package/dist/bitcoind/hash-order.d.ts +4 -0
- package/dist/bitcoind/hash-order.js +13 -0
- package/dist/bitcoind/indexer-daemon-main.js +11 -3
- package/dist/bitcoind/normalize.js +3 -2
- package/dist/bitcoind/processing-start-height.d.ts +5 -0
- package/dist/bitcoind/processing-start-height.js +7 -0
- package/dist/bitcoind/progress/constants.d.ts +4 -0
- package/dist/bitcoind/progress/constants.js +4 -0
- package/dist/bitcoind/progress/controller.d.ts +2 -1
- package/dist/bitcoind/progress/controller.js +3 -3
- package/dist/bitcoind/progress/follow-scene.d.ts +6 -2
- package/dist/bitcoind/progress/follow-scene.js +29 -6
- package/dist/bitcoind/progress/formatting.d.ts +1 -0
- package/dist/bitcoind/progress/formatting.js +6 -0
- package/dist/bitcoind/progress/train-scene.js +37 -18
- package/dist/bitcoind/progress/tty-renderer.d.ts +6 -1
- package/dist/bitcoind/progress/tty-renderer.js +8 -4
- package/dist/bitcoind/rpc.d.ts +2 -1
- package/dist/bitcoind/rpc.js +3 -0
- package/dist/bitcoind/types.d.ts +16 -0
- package/dist/bytes.d.ts +1 -0
- package/dist/bytes.js +3 -0
- package/dist/cli/art.d.ts +2 -0
- package/dist/cli/art.js +37 -0
- package/dist/cli/commands/client-admin.d.ts +2 -0
- package/dist/cli/commands/client-admin.js +91 -0
- package/dist/cli/commands/follow.js +0 -2
- package/dist/cli/commands/mining-admin.js +6 -47
- package/dist/cli/commands/mining-read.js +11 -50
- package/dist/cli/commands/mining-runtime.js +38 -3
- package/dist/cli/commands/service-runtime.js +0 -2
- package/dist/cli/commands/status.js +8 -2
- package/dist/cli/commands/sync.js +51 -4
- package/dist/cli/commands/wallet-admin.js +142 -136
- package/dist/cli/commands/wallet-mutation.js +91 -79
- package/dist/cli/commands/wallet-read.js +15 -18
- package/dist/cli/context.js +4 -14
- package/dist/cli/mining-format.d.ts +0 -1
- package/dist/cli/mining-format.js +5 -37
- package/dist/cli/mining-json.d.ts +0 -18
- package/dist/cli/mining-json.js +0 -35
- package/dist/cli/mutation-command-groups.d.ts +1 -2
- package/dist/cli/mutation-command-groups.js +0 -5
- package/dist/cli/mutation-json.d.ts +24 -145
- package/dist/cli/mutation-json.js +30 -136
- package/dist/cli/mutation-resolved-json.d.ts +0 -7
- package/dist/cli/mutation-resolved-json.js +4 -10
- package/dist/cli/mutation-success.d.ts +2 -0
- package/dist/cli/mutation-success.js +11 -1
- package/dist/cli/mutation-text-format.js +1 -3
- package/dist/cli/output.d.ts +1 -1
- package/dist/cli/output.js +254 -231
- package/dist/cli/parse.d.ts +1 -1
- package/dist/cli/parse.js +93 -122
- package/dist/cli/preview-json.d.ts +17 -120
- package/dist/cli/preview-json.js +14 -97
- package/dist/cli/prompt.js +8 -13
- package/dist/cli/read-json.d.ts +15 -37
- package/dist/cli/read-json.js +44 -140
- package/dist/cli/runner.js +10 -13
- package/dist/cli/types.d.ts +8 -17
- package/dist/cli/types.js +0 -2
- package/dist/cli/wallet-format.d.ts +1 -0
- package/dist/cli/wallet-format.js +205 -144
- package/dist/cli/workflow-hints.d.ts +3 -3
- package/dist/cli/workflow-hints.js +11 -8
- package/dist/client/default-client.d.ts +3 -1
- package/dist/client/default-client.js +45 -2
- package/dist/client/factory.js +1 -1
- package/dist/client/initialization.js +23 -0
- package/dist/client/persistence.js +5 -5
- package/dist/client/store-adapter.js +1 -0
- package/dist/sqlite/checkpoints.d.ts +1 -0
- package/dist/sqlite/checkpoints.js +7 -0
- package/dist/sqlite/store.js +14 -1
- package/dist/types.d.ts +1 -0
- package/dist/wallet/coin-control.d.ts +41 -11
- package/dist/wallet/coin-control.js +100 -357
- package/dist/wallet/descriptor-normalization.d.ts +1 -3
- package/dist/wallet/descriptor-normalization.js +0 -16
- package/dist/wallet/lifecycle.d.ts +7 -99
- package/dist/wallet/lifecycle.js +513 -968
- package/dist/wallet/managed-core-wallet.d.ts +13 -0
- package/dist/wallet/managed-core-wallet.js +20 -0
- package/dist/wallet/mining/constants.d.ts +5 -12
- package/dist/wallet/mining/constants.js +5 -12
- package/dist/wallet/mining/control.d.ts +1 -13
- package/dist/wallet/mining/control.js +45 -349
- package/dist/wallet/mining/index.d.ts +3 -4
- package/dist/wallet/mining/index.js +1 -2
- package/dist/wallet/mining/runner.d.ts +179 -6
- package/dist/wallet/mining/runner.js +891 -501
- package/dist/wallet/mining/runtime-artifacts.js +23 -3
- package/dist/wallet/mining/sentence-protocol.d.ts +44 -0
- package/dist/wallet/mining/sentence-protocol.js +123 -0
- package/dist/wallet/mining/sentences.d.ts +4 -8
- package/dist/wallet/mining/sentences.js +3 -52
- package/dist/wallet/mining/state.d.ts +11 -6
- package/dist/wallet/mining/state.js +7 -6
- package/dist/wallet/mining/types.d.ts +2 -30
- package/dist/wallet/mining/visualizer.d.ts +31 -3
- package/dist/wallet/mining/visualizer.js +135 -13
- package/dist/wallet/read/context.d.ts +0 -2
- package/dist/wallet/read/context.js +119 -140
- package/dist/wallet/read/filter.js +2 -11
- package/dist/wallet/read/index.d.ts +1 -1
- package/dist/wallet/read/project.js +24 -77
- package/dist/wallet/read/types.d.ts +10 -25
- package/dist/wallet/reset.d.ts +0 -1
- package/dist/wallet/reset.js +60 -138
- package/dist/wallet/root-resolution.d.ts +1 -5
- package/dist/wallet/root-resolution.js +0 -18
- package/dist/wallet/runtime.d.ts +0 -6
- package/dist/wallet/runtime.js +0 -8
- package/dist/wallet/state/client-password-agent.js +208 -0
- package/dist/wallet/state/client-password.d.ts +65 -0
- package/dist/wallet/state/client-password.js +952 -0
- package/dist/wallet/state/crypto.d.ts +1 -20
- package/dist/wallet/state/crypto.js +0 -63
- package/dist/wallet/state/provider.d.ts +23 -11
- package/dist/wallet/state/provider.js +248 -290
- package/dist/wallet/state/storage.d.ts +2 -2
- package/dist/wallet/state/storage.js +48 -16
- package/dist/wallet/tx/anchor.d.ts +3 -28
- package/dist/wallet/tx/anchor.js +349 -1240
- package/dist/wallet/tx/bitcoin-transfer.d.ts +35 -0
- package/dist/wallet/tx/bitcoin-transfer.js +200 -0
- package/dist/wallet/tx/cog.d.ts +5 -1
- package/dist/wallet/tx/cog.js +149 -185
- package/dist/wallet/tx/common.d.ts +74 -10
- package/dist/wallet/tx/common.js +315 -138
- package/dist/wallet/tx/domain-admin.d.ts +3 -1
- package/dist/wallet/tx/domain-admin.js +61 -99
- package/dist/wallet/tx/domain-market.d.ts +5 -1
- package/dist/wallet/tx/domain-market.js +221 -228
- package/dist/wallet/tx/field.d.ts +4 -10
- package/dist/wallet/tx/field.js +84 -914
- package/dist/wallet/tx/identity-selector.d.ts +9 -3
- package/dist/wallet/tx/identity-selector.js +17 -35
- package/dist/wallet/tx/index.d.ts +3 -1
- package/dist/wallet/tx/index.js +2 -1
- package/dist/wallet/tx/register.d.ts +3 -1
- package/dist/wallet/tx/register.js +62 -220
- package/dist/wallet/tx/reputation.d.ts +3 -1
- package/dist/wallet/tx/reputation.js +58 -95
- package/dist/wallet/types.d.ts +8 -122
- package/package.json +5 -5
- package/dist/wallet/archive.d.ts +0 -4
- package/dist/wallet/archive.js +0 -41
- package/dist/wallet/mining/hook-protocol.d.ts +0 -47
- package/dist/wallet/mining/hook-protocol.js +0 -161
- package/dist/wallet/mining/hook-runner.js +0 -52
- package/dist/wallet/mining/hooks.d.ts +0 -38
- package/dist/wallet/mining/hooks.js +0 -520
- package/dist/wallet/state/explicit-lock.d.ts +0 -4
- package/dist/wallet/state/explicit-lock.js +0 -19
- package/dist/wallet/state/session.d.ts +0 -12
- package/dist/wallet/state/session.js +0 -23
- /package/dist/wallet/{mining/hook-runner.d.ts → state/client-password-agent.d.ts} +0 -0
|
@@ -1,25 +1,42 @@
|
|
|
1
|
-
import type { RpcDecodedPsbt, RpcFinalizePsbtResult, RpcListUnspentEntry, RpcLockedUnspent, RpcTestMempoolAcceptResult, RpcTransaction, RpcVin, RpcWalletCreateFundedPsbtResult, RpcWalletProcessPsbtResult } from "../../bitcoind/types.js";
|
|
1
|
+
import type { RpcDecodedPsbt, RpcEstimateSmartFeeResult, RpcFinalizePsbtResult, RpcListUnspentEntry, RpcLockedUnspent, RpcMempoolEntry, RpcTestMempoolAcceptResult, RpcTransaction, RpcVin, RpcWalletCreateFundedPsbtResult, RpcWalletTransaction, RpcWalletProcessPsbtResult } from "../../bitcoind/types.js";
|
|
2
2
|
import { type WalletSecretProvider } from "../state/provider.js";
|
|
3
3
|
import type { OutpointRecord, PendingMutationRecord, PendingMutationStatus, WalletStateV1 } from "../types.js";
|
|
4
4
|
import type { WalletReadContext } from "../read/index.js";
|
|
5
5
|
import type { WalletRuntimePaths } from "../runtime.js";
|
|
6
6
|
import { type MiningPreemptionHandle } from "../mining/coordination.js";
|
|
7
7
|
export declare const DEFAULT_WALLET_MUTATION_FEE_RATE_SAT_VB = 10;
|
|
8
|
+
export declare const NEXT_BLOCK_FEE_CONFIRM_TARGET = 1;
|
|
9
|
+
export type WalletMutationFeeSelectionSource = "custom-satvb" | "estimated-next-block-plus-one" | "fallback-default";
|
|
10
|
+
export interface WalletMutationFeeSelection {
|
|
11
|
+
feeRateSatVb: number;
|
|
12
|
+
source: WalletMutationFeeSelectionSource;
|
|
13
|
+
}
|
|
14
|
+
export interface WalletMutationFeeSummary extends WalletMutationFeeSelection {
|
|
15
|
+
feeSats: string | null;
|
|
16
|
+
}
|
|
8
17
|
export interface MutationSender {
|
|
9
18
|
localIndex: number;
|
|
10
19
|
scriptPubKeyHex: string;
|
|
11
20
|
address: string;
|
|
12
21
|
}
|
|
22
|
+
export declare function isLocalWalletScript(state: WalletStateV1, scriptPubKeyHex: string | null | undefined): boolean;
|
|
23
|
+
export declare function createFundingMutationSender(state: WalletStateV1): MutationSender;
|
|
13
24
|
export interface WalletMutationRpcClient {
|
|
14
25
|
listUnspent(walletName: string, minConf?: number): Promise<RpcListUnspentEntry[]>;
|
|
15
|
-
listLockUnspent(walletName: string): Promise<RpcLockedUnspent[]>;
|
|
16
|
-
lockUnspent(walletName: string, unlock: boolean, outputs: RpcLockedUnspent[]): Promise<boolean>;
|
|
26
|
+
listLockUnspent?(walletName: string): Promise<RpcLockedUnspent[]>;
|
|
27
|
+
lockUnspent?(walletName: string, unlock: boolean, outputs: RpcLockedUnspent[]): Promise<boolean>;
|
|
28
|
+
getTransaction?(walletName: string, txid: string): Promise<RpcWalletTransaction>;
|
|
29
|
+
getRawTransaction?(txid: string, verbose?: boolean): Promise<RpcTransaction>;
|
|
30
|
+
getMempoolEntry?(txid: string): Promise<RpcMempoolEntry>;
|
|
31
|
+
estimateSmartFee?(confirmTarget: number, mode: "conservative" | "economical"): Promise<RpcEstimateSmartFeeResult>;
|
|
17
32
|
walletCreateFundedPsbt(walletName: string, inputs: Array<{
|
|
18
33
|
txid: string;
|
|
19
34
|
vout: number;
|
|
20
35
|
}>, outputs: unknown[], locktime: number, options: Record<string, unknown>, bip32Derivs?: boolean): Promise<RpcWalletCreateFundedPsbtResult>;
|
|
21
36
|
decodePsbt(psbt: string): Promise<RpcDecodedPsbt>;
|
|
37
|
+
walletPassphrase(walletName: string, passphrase: string, timeoutSeconds: number): Promise<null>;
|
|
22
38
|
walletProcessPsbt(walletName: string, psbt: string, sign?: boolean, sighashType?: string): Promise<RpcWalletProcessPsbtResult>;
|
|
39
|
+
walletLock(walletName: string): Promise<null>;
|
|
23
40
|
finalizePsbt(psbt: string, extract?: boolean): Promise<RpcFinalizePsbtResult>;
|
|
24
41
|
decodeRawTransaction(hex: string): Promise<RpcTransaction>;
|
|
25
42
|
testMempoolAccept(rawTransactions: string[]): Promise<RpcTestMempoolAcceptResult[]>;
|
|
@@ -35,28 +52,69 @@ export interface BuiltWalletMutationTransaction {
|
|
|
35
52
|
}
|
|
36
53
|
export interface FixedWalletInput extends OutpointRecord {
|
|
37
54
|
}
|
|
55
|
+
export declare function formatSatVb(value: number): string;
|
|
56
|
+
export declare function createWalletMutationFeeMetadata(selection: WalletMutationFeeSelection): {
|
|
57
|
+
selectedFeeRateSatVb: number;
|
|
58
|
+
feeSelectionSource: WalletMutationFeeSelectionSource;
|
|
59
|
+
};
|
|
60
|
+
export declare function resolveWalletMutationFeeSelection(options: {
|
|
61
|
+
rpc: Pick<WalletMutationRpcClient, "estimateSmartFee">;
|
|
62
|
+
feeRateSatVb?: number | null;
|
|
63
|
+
}): Promise<WalletMutationFeeSelection>;
|
|
64
|
+
export declare function createWalletMutationFeeSummary(selection: WalletMutationFeeSelection, feeSats: string | null): WalletMutationFeeSummary;
|
|
65
|
+
export declare function createBuiltWalletMutationFeeSummary(options: {
|
|
66
|
+
selection: WalletMutationFeeSelection;
|
|
67
|
+
built: BuiltWalletMutationTransaction;
|
|
68
|
+
}): WalletMutationFeeSummary;
|
|
69
|
+
export declare function resolvePendingMutationFeeSummary(options: {
|
|
70
|
+
rpc: Pick<WalletMutationRpcClient, "getMempoolEntry">;
|
|
71
|
+
mutation: PendingMutationRecord;
|
|
72
|
+
}): Promise<WalletMutationFeeSummary>;
|
|
73
|
+
export declare function loadAttemptedMutationFixedInputs(options: {
|
|
74
|
+
rpc: Pick<WalletMutationRpcClient, "getTransaction" | "getRawTransaction">;
|
|
75
|
+
walletName: string;
|
|
76
|
+
mutation: PendingMutationRecord;
|
|
77
|
+
}): Promise<FixedWalletInput[] | null>;
|
|
78
|
+
export declare function resolvePendingMutationReuseDecision(options: {
|
|
79
|
+
rpc: Pick<WalletMutationRpcClient, "getMempoolEntry" | "getTransaction" | "getRawTransaction">;
|
|
80
|
+
walletName: string;
|
|
81
|
+
mutation: PendingMutationRecord;
|
|
82
|
+
nextFeeSelection: WalletMutationFeeSelection;
|
|
83
|
+
}): Promise<{
|
|
84
|
+
reuseExisting: boolean;
|
|
85
|
+
fees: WalletMutationFeeSummary;
|
|
86
|
+
replacementFixedInputs: FixedWalletInput[] | null;
|
|
87
|
+
}>;
|
|
88
|
+
export declare function mergeFixedWalletInputs(fixedInputs: readonly FixedWalletInput[], replacementInputs: readonly FixedWalletInput[] | null): FixedWalletInput[];
|
|
38
89
|
export declare function saveWalletStatePreservingUnlock(options: {
|
|
39
90
|
state: WalletStateV1;
|
|
40
91
|
provider: WalletSecretProvider;
|
|
41
|
-
|
|
42
|
-
nowUnixMs: number;
|
|
92
|
+
nowUnixMs?: number;
|
|
43
93
|
paths: WalletRuntimePaths;
|
|
44
94
|
}): Promise<void>;
|
|
45
95
|
export declare function formatCogAmount(value: bigint): string;
|
|
46
96
|
export declare function outpointKey(outpoint: OutpointRecord): string;
|
|
97
|
+
export declare function findSpendableFundingInputsFromTransaction(options: {
|
|
98
|
+
allUtxos: RpcListUnspentEntry[];
|
|
99
|
+
txid: string;
|
|
100
|
+
fundingScriptPubKeyHex: string;
|
|
101
|
+
minConf?: number;
|
|
102
|
+
}): FixedWalletInput[];
|
|
47
103
|
export declare function updateMutationRecord(mutation: PendingMutationRecord, status: PendingMutationStatus, nowUnixMs: number, options?: {
|
|
48
104
|
attemptedTxid?: string | null;
|
|
49
105
|
attemptedWtxid?: string | null;
|
|
50
106
|
temporaryBuilderLockedOutpoints?: OutpointRecord[];
|
|
107
|
+
selectedFeeRateSatVb?: number | null;
|
|
108
|
+
feeSelectionSource?: WalletMutationFeeSelectionSource | null;
|
|
51
109
|
}): PendingMutationRecord;
|
|
52
110
|
export declare function unlockTemporaryBuilderLocks(rpc: Pick<WalletMutationRpcClient, "lockUnspent">, walletName: string, outpoints: OutpointRecord[]): Promise<void>;
|
|
53
111
|
export declare function diffTemporaryLockedOutpoints(before: RpcLockedUnspent[], after: RpcLockedUnspent[]): OutpointRecord[];
|
|
54
|
-
export declare function getDecodedInputScriptPubKeyHex(input: RpcVin): string | null;
|
|
55
112
|
export declare function getDecodedInputVout(input: RpcVin): number | null;
|
|
113
|
+
export declare function getDecodedInputScriptPubKeyHex(decoded: RpcDecodedPsbt, inputIndex: number): string | null;
|
|
56
114
|
export declare function inputMatchesOutpoint(input: RpcVin, outpoint: OutpointRecord): boolean;
|
|
57
115
|
export declare function assertFixedInputPrefixMatches(inputs: RpcVin[], fixedInputs: FixedWalletInput[], errorCode: string): void;
|
|
58
116
|
export declare function assertFundingInputsAfterFixedPrefix(options: {
|
|
59
|
-
|
|
117
|
+
decoded: RpcDecodedPsbt;
|
|
60
118
|
fixedInputs: FixedWalletInput[];
|
|
61
119
|
allowedFundingScriptPubKeyHex: string;
|
|
62
120
|
eligibleFundingOutpointKeys: Set<string>;
|
|
@@ -77,11 +135,16 @@ export declare function assertWalletMutationContextReady(context: WalletReadCont
|
|
|
77
135
|
localState: {
|
|
78
136
|
availability: "ready";
|
|
79
137
|
state: WalletStateV1;
|
|
80
|
-
unlockUntilUnixMs: number;
|
|
81
138
|
};
|
|
82
139
|
snapshot: NonNullable<WalletReadContext["snapshot"]>;
|
|
83
140
|
model: NonNullable<WalletReadContext["model"]>;
|
|
84
141
|
};
|
|
142
|
+
export declare function assertWalletBitcoinTransferContextReady(context: WalletReadContext, errorPrefix: string): asserts context is WalletReadContext & {
|
|
143
|
+
localState: {
|
|
144
|
+
availability: "ready";
|
|
145
|
+
state: WalletStateV1;
|
|
146
|
+
};
|
|
147
|
+
};
|
|
85
148
|
export declare function pauseMiningForWalletMutation(options: {
|
|
86
149
|
paths: WalletRuntimePaths;
|
|
87
150
|
reason: string;
|
|
@@ -94,7 +157,7 @@ export declare function buildWalletMutationTransaction<TPlan>(options: {
|
|
|
94
157
|
fixedInputs: FixedWalletInput[];
|
|
95
158
|
outputs: unknown[];
|
|
96
159
|
changeAddress: string;
|
|
97
|
-
changePosition
|
|
160
|
+
changePosition?: number | null;
|
|
98
161
|
allowedFundingScriptPubKeyHex: string;
|
|
99
162
|
eligibleFundingOutpointKeys: Set<string>;
|
|
100
163
|
};
|
|
@@ -102,6 +165,7 @@ export declare function buildWalletMutationTransaction<TPlan>(options: {
|
|
|
102
165
|
finalizeErrorCode: string;
|
|
103
166
|
mempoolRejectPrefix: string;
|
|
104
167
|
feeRate?: number;
|
|
168
|
+
availableFundingMinConf?: number;
|
|
105
169
|
temporarilyUnlockedPolicyOutpoints?: readonly OutpointRecord[];
|
|
106
170
|
}): Promise<BuiltWalletMutationTransaction>;
|
|
107
171
|
export declare function buildWalletMutationTransactionWithReserveFallback<TPlan>(options: {
|
|
@@ -120,5 +184,5 @@ export declare function buildWalletMutationTransactionWithReserveFallback<TPlan>
|
|
|
120
184
|
finalizeErrorCode: string;
|
|
121
185
|
mempoolRejectPrefix: string;
|
|
122
186
|
feeRate?: number;
|
|
123
|
-
|
|
187
|
+
availableFundingMinConf?: number;
|
|
124
188
|
}): Promise<BuiltWalletMutationTransaction>;
|