@claw-network/node 0.2.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 +49 -0
- package/dist/api/api-key-store.d.ts +74 -0
- package/dist/api/api-key-store.d.ts.map +1 -0
- package/dist/api/api-key-store.js +170 -0
- package/dist/api/api-key-store.js.map +1 -0
- package/dist/api/auth.d.ts +30 -0
- package/dist/api/auth.d.ts.map +1 -0
- package/dist/api/auth.js +115 -0
- package/dist/api/auth.js.map +1 -0
- package/dist/api/legacy.d.ts +26 -0
- package/dist/api/legacy.d.ts.map +1 -0
- package/dist/api/legacy.js +281 -0
- package/dist/api/legacy.js.map +1 -0
- package/dist/api/middleware.d.ts +35 -0
- package/dist/api/middleware.d.ts.map +1 -0
- package/dist/api/middleware.js +75 -0
- package/dist/api/middleware.js.map +1 -0
- package/dist/api/response.d.ts +85 -0
- package/dist/api/response.d.ts.map +1 -0
- package/dist/api/response.js +185 -0
- package/dist/api/response.js.map +1 -0
- package/dist/api/router.d.ts +45 -0
- package/dist/api/router.d.ts.map +1 -0
- package/dist/api/router.js +183 -0
- package/dist/api/router.js.map +1 -0
- package/dist/api/routes/admin.d.ts +11 -0
- package/dist/api/routes/admin.d.ts.map +1 -0
- package/dist/api/routes/admin.js +124 -0
- package/dist/api/routes/admin.js.map +1 -0
- package/dist/api/routes/contracts.d.ts +7 -0
- package/dist/api/routes/contracts.d.ts.map +1 -0
- package/dist/api/routes/contracts.js +665 -0
- package/dist/api/routes/contracts.js.map +1 -0
- package/dist/api/routes/dao.d.ts +7 -0
- package/dist/api/routes/dao.d.ts.map +1 -0
- package/dist/api/routes/dao.js +549 -0
- package/dist/api/routes/dao.js.map +1 -0
- package/dist/api/routes/dev.d.ts +9 -0
- package/dist/api/routes/dev.d.ts.map +1 -0
- package/dist/api/routes/dev.js +273 -0
- package/dist/api/routes/dev.js.map +1 -0
- package/dist/api/routes/escrows.d.ts +7 -0
- package/dist/api/routes/escrows.d.ts.map +1 -0
- package/dist/api/routes/escrows.js +454 -0
- package/dist/api/routes/escrows.js.map +1 -0
- package/dist/api/routes/identities.d.ts +7 -0
- package/dist/api/routes/identities.d.ts.map +1 -0
- package/dist/api/routes/identities.js +245 -0
- package/dist/api/routes/identities.js.map +1 -0
- package/dist/api/routes/markets-capabilities.d.ts +7 -0
- package/dist/api/routes/markets-capabilities.d.ts.map +1 -0
- package/dist/api/routes/markets-capabilities.js +477 -0
- package/dist/api/routes/markets-capabilities.js.map +1 -0
- package/dist/api/routes/markets-disputes.d.ts +7 -0
- package/dist/api/routes/markets-disputes.d.ts.map +1 -0
- package/dist/api/routes/markets-disputes.js +102 -0
- package/dist/api/routes/markets-disputes.js.map +1 -0
- package/dist/api/routes/markets-info.d.ts +7 -0
- package/dist/api/routes/markets-info.d.ts.map +1 -0
- package/dist/api/routes/markets-info.js +523 -0
- package/dist/api/routes/markets-info.js.map +1 -0
- package/dist/api/routes/markets-search.d.ts +7 -0
- package/dist/api/routes/markets-search.d.ts.map +1 -0
- package/dist/api/routes/markets-search.js +38 -0
- package/dist/api/routes/markets-search.js.map +1 -0
- package/dist/api/routes/markets-tasks.d.ts +7 -0
- package/dist/api/routes/markets-tasks.d.ts.map +1 -0
- package/dist/api/routes/markets-tasks.js +539 -0
- package/dist/api/routes/markets-tasks.js.map +1 -0
- package/dist/api/routes/node.d.ts +7 -0
- package/dist/api/routes/node.d.ts.map +1 -0
- package/dist/api/routes/node.js +53 -0
- package/dist/api/routes/node.js.map +1 -0
- package/dist/api/routes/nonce.d.ts +10 -0
- package/dist/api/routes/nonce.d.ts.map +1 -0
- package/dist/api/routes/nonce.js +65 -0
- package/dist/api/routes/nonce.js.map +1 -0
- package/dist/api/routes/reputations.d.ts +7 -0
- package/dist/api/routes/reputations.d.ts.map +1 -0
- package/dist/api/routes/reputations.js +243 -0
- package/dist/api/routes/reputations.js.map +1 -0
- package/dist/api/routes/transfers.d.ts +7 -0
- package/dist/api/routes/transfers.d.ts.map +1 -0
- package/dist/api/routes/transfers.js +88 -0
- package/dist/api/routes/transfers.js.map +1 -0
- package/dist/api/routes/wallets.d.ts +7 -0
- package/dist/api/routes/wallets.d.ts.map +1 -0
- package/dist/api/routes/wallets.js +132 -0
- package/dist/api/routes/wallets.js.map +1 -0
- package/dist/api/schemas/common.d.ts +45 -0
- package/dist/api/schemas/common.d.ts.map +1 -0
- package/dist/api/schemas/common.js +30 -0
- package/dist/api/schemas/common.js.map +1 -0
- package/dist/api/schemas/contracts.d.ts +284 -0
- package/dist/api/schemas/contracts.d.ts.map +1 -0
- package/dist/api/schemas/contracts.js +79 -0
- package/dist/api/schemas/contracts.js.map +1 -0
- package/dist/api/schemas/dao.d.ts +271 -0
- package/dist/api/schemas/dao.d.ts.map +1 -0
- package/dist/api/schemas/dao.js +78 -0
- package/dist/api/schemas/dao.js.map +1 -0
- package/dist/api/schemas/identity.d.ts +75 -0
- package/dist/api/schemas/identity.d.ts.map +1 -0
- package/dist/api/schemas/identity.js +32 -0
- package/dist/api/schemas/identity.js.map +1 -0
- package/dist/api/schemas/markets.d.ts +822 -0
- package/dist/api/schemas/markets.d.ts.map +1 -0
- package/dist/api/schemas/markets.js +246 -0
- package/dist/api/schemas/markets.js.map +1 -0
- package/dist/api/schemas/wallet.d.ts +163 -0
- package/dist/api/schemas/wallet.d.ts.map +1 -0
- package/dist/api/schemas/wallet.js +54 -0
- package/dist/api/schemas/wallet.js.map +1 -0
- package/dist/api/server.d.ts +45 -0
- package/dist/api/server.d.ts.map +1 -0
- package/dist/api/server.js +131 -0
- package/dist/api/server.js.map +1 -0
- package/dist/api/types.d.ts +69 -0
- package/dist/api/types.d.ts.map +1 -0
- package/dist/api/types.js +196 -0
- package/dist/api/types.js.map +1 -0
- package/dist/daemon.d.ts +11 -0
- package/dist/daemon.d.ts.map +1 -0
- package/dist/daemon.js +248 -0
- package/dist/daemon.js.map +1 -0
- package/dist/index.d.ts +137 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +795 -0
- package/dist/index.js.map +1 -0
- package/dist/indexer/index.d.ts +10 -0
- package/dist/indexer/index.d.ts.map +1 -0
- package/dist/indexer/index.js +7 -0
- package/dist/indexer/index.js.map +1 -0
- package/dist/indexer/indexer.d.ts +60 -0
- package/dist/indexer/indexer.d.ts.map +1 -0
- package/dist/indexer/indexer.js +408 -0
- package/dist/indexer/indexer.js.map +1 -0
- package/dist/indexer/query.d.ts +141 -0
- package/dist/indexer/query.d.ts.map +1 -0
- package/dist/indexer/query.js +244 -0
- package/dist/indexer/query.js.map +1 -0
- package/dist/indexer/store.d.ts +95 -0
- package/dist/indexer/store.d.ts.map +1 -0
- package/dist/indexer/store.js +250 -0
- package/dist/indexer/store.js.map +1 -0
- package/dist/logger.d.ts +13 -0
- package/dist/logger.d.ts.map +1 -0
- package/dist/logger.js +37 -0
- package/dist/logger.js.map +1 -0
- package/dist/p2p/sync.d.ts +105 -0
- package/dist/p2p/sync.d.ts.map +1 -0
- package/dist/p2p/sync.js +875 -0
- package/dist/p2p/sync.js.map +1 -0
- package/dist/policy/liquidity-policy.d.ts +17 -0
- package/dist/policy/liquidity-policy.d.ts.map +1 -0
- package/dist/policy/liquidity-policy.js +112 -0
- package/dist/policy/liquidity-policy.js.map +1 -0
- package/dist/services/chain-config.d.ts +226 -0
- package/dist/services/chain-config.d.ts.map +1 -0
- package/dist/services/chain-config.js +105 -0
- package/dist/services/chain-config.js.map +1 -0
- package/dist/services/contract-provider.d.ts +44 -0
- package/dist/services/contract-provider.d.ts.map +1 -0
- package/dist/services/contract-provider.js +167 -0
- package/dist/services/contract-provider.js.map +1 -0
- package/dist/services/contracts-service.d.ts +192 -0
- package/dist/services/contracts-service.d.ts.map +1 -0
- package/dist/services/contracts-service.js +336 -0
- package/dist/services/contracts-service.js.map +1 -0
- package/dist/services/dao-service.d.ts +245 -0
- package/dist/services/dao-service.d.ts.map +1 -0
- package/dist/services/dao-service.js +389 -0
- package/dist/services/dao-service.js.map +1 -0
- package/dist/services/identity-service.d.ts +150 -0
- package/dist/services/identity-service.d.ts.map +1 -0
- package/dist/services/identity-service.js +286 -0
- package/dist/services/identity-service.js.map +1 -0
- package/dist/services/index.d.ts +20 -0
- package/dist/services/index.d.ts.map +1 -0
- package/dist/services/index.js +15 -0
- package/dist/services/index.js.map +1 -0
- package/dist/services/reputation-service.d.ts +128 -0
- package/dist/services/reputation-service.d.ts.map +1 -0
- package/dist/services/reputation-service.js +204 -0
- package/dist/services/reputation-service.js.map +1 -0
- package/dist/services/wallet-service.d.ts +201 -0
- package/dist/services/wallet-service.d.ts.map +1 -0
- package/dist/services/wallet-service.js +402 -0
- package/dist/services/wallet-service.js.map +1 -0
- package/package.json +66 -0
package/dist/daemon.js
ADDED
|
@@ -0,0 +1,248 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { readFile } from 'node:fs/promises';
|
|
3
|
+
import { parse } from 'yaml';
|
|
4
|
+
import { ClawNetNode } from './index.js';
|
|
5
|
+
import { createLogger } from './logger.js';
|
|
6
|
+
import { loadConfig, resolveStoragePaths } from '@claw-network/core';
|
|
7
|
+
import { ChainConfigSchema } from './services/chain-config.js';
|
|
8
|
+
import { validateLiquidityPolicyFromEnv } from './policy/liquidity-policy.js';
|
|
9
|
+
function parseArgs(argv) {
|
|
10
|
+
let dataDir;
|
|
11
|
+
let noApi = false;
|
|
12
|
+
let apiHost;
|
|
13
|
+
let apiPort;
|
|
14
|
+
const listen = [];
|
|
15
|
+
const bootstrap = [];
|
|
16
|
+
let healthIntervalMs = 30_000;
|
|
17
|
+
let passphrase;
|
|
18
|
+
let network;
|
|
19
|
+
for (let i = 0; i < argv.length; i += 1) {
|
|
20
|
+
const arg = argv[i];
|
|
21
|
+
if (arg === '--data-dir') {
|
|
22
|
+
dataDir = argv[++i];
|
|
23
|
+
continue;
|
|
24
|
+
}
|
|
25
|
+
if (arg === '--no-api') {
|
|
26
|
+
noApi = true;
|
|
27
|
+
continue;
|
|
28
|
+
}
|
|
29
|
+
if (arg === '--api-host') {
|
|
30
|
+
apiHost = argv[++i];
|
|
31
|
+
continue;
|
|
32
|
+
}
|
|
33
|
+
if (arg === '--api-port') {
|
|
34
|
+
const raw = argv[++i] ?? '';
|
|
35
|
+
const parsed = Number.parseInt(raw, 10);
|
|
36
|
+
if (Number.isNaN(parsed) || parsed < 1 || parsed > 65535) {
|
|
37
|
+
console.error(`Invalid --api-port value: '${raw}'. Must be 1–65535.`);
|
|
38
|
+
process.exit(1);
|
|
39
|
+
}
|
|
40
|
+
apiPort = parsed;
|
|
41
|
+
continue;
|
|
42
|
+
}
|
|
43
|
+
if (arg === '--listen') {
|
|
44
|
+
const value = argv[++i];
|
|
45
|
+
if (value) {
|
|
46
|
+
listen.push(value);
|
|
47
|
+
}
|
|
48
|
+
continue;
|
|
49
|
+
}
|
|
50
|
+
if (arg === '--bootstrap') {
|
|
51
|
+
const value = argv[++i];
|
|
52
|
+
if (value) {
|
|
53
|
+
bootstrap.push(value);
|
|
54
|
+
}
|
|
55
|
+
continue;
|
|
56
|
+
}
|
|
57
|
+
if (arg === '--health-interval-ms') {
|
|
58
|
+
healthIntervalMs = Number.parseInt(argv[++i] ?? '', 10);
|
|
59
|
+
continue;
|
|
60
|
+
}
|
|
61
|
+
if (arg === '--passphrase') {
|
|
62
|
+
passphrase = argv[++i];
|
|
63
|
+
continue;
|
|
64
|
+
}
|
|
65
|
+
if (arg === '--network') {
|
|
66
|
+
const val = argv[++i];
|
|
67
|
+
if (val !== 'mainnet' && val !== 'testnet' && val !== 'devnet') {
|
|
68
|
+
console.error(`[clawnetd] invalid --network value: ${val} (must be mainnet|testnet|devnet)`);
|
|
69
|
+
process.exit(1);
|
|
70
|
+
}
|
|
71
|
+
network = val;
|
|
72
|
+
continue;
|
|
73
|
+
}
|
|
74
|
+
if (arg === '--help' || arg === '-h') {
|
|
75
|
+
printHelp();
|
|
76
|
+
process.exit(0);
|
|
77
|
+
}
|
|
78
|
+
console.error(`[clawnetd] unknown option: ${arg}`);
|
|
79
|
+
process.exit(1);
|
|
80
|
+
}
|
|
81
|
+
if (Number.isNaN(healthIntervalMs) || healthIntervalMs < 0) {
|
|
82
|
+
console.error('[clawnetd] invalid --health-interval-ms');
|
|
83
|
+
process.exit(1);
|
|
84
|
+
}
|
|
85
|
+
return {
|
|
86
|
+
dataDir,
|
|
87
|
+
noApi,
|
|
88
|
+
apiHost,
|
|
89
|
+
apiPort,
|
|
90
|
+
listen,
|
|
91
|
+
bootstrap,
|
|
92
|
+
healthIntervalMs,
|
|
93
|
+
passphrase: passphrase ?? process.env.CLAW_PASSPHRASE,
|
|
94
|
+
network: network ?? process.env.CLAW_NETWORK,
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
async function main(argv = process.argv.slice(2)) {
|
|
98
|
+
await startDaemon(argv, { attachSignals: true });
|
|
99
|
+
}
|
|
100
|
+
export async function startDaemon(argv, options = {}) {
|
|
101
|
+
const args = parseArgs(argv);
|
|
102
|
+
const liquidityPolicyValidation = validateLiquidityPolicyFromEnv();
|
|
103
|
+
if (liquidityPolicyValidation.enabled && liquidityPolicyValidation.errors.length > 0) {
|
|
104
|
+
const details = liquidityPolicyValidation.errors.map((msg) => `- ${msg}`).join('\n');
|
|
105
|
+
console.error(`[clawnetd] FATAL: invalid liquidity policy configuration.\n\n${details}\n\n` +
|
|
106
|
+
'Set a dedicated CLAW_LIQUIDITY_ADDRESS and keep it separate from treasury/faucet/reserve wallets.\n' +
|
|
107
|
+
'Required controls: multisig wallet, monthly budget cap, recycle-to-treasury policy.');
|
|
108
|
+
process.exit(1);
|
|
109
|
+
}
|
|
110
|
+
// ── Passphrase is REQUIRED ──────────────────────────────────────────
|
|
111
|
+
// Without a passphrase the node cannot create or decrypt its identity
|
|
112
|
+
// key record, which means: no DID, no signing, no transactions.
|
|
113
|
+
if (!args.passphrase) {
|
|
114
|
+
console.error(`[clawnetd] FATAL: No passphrase configured.
|
|
115
|
+
|
|
116
|
+
A passphrase is required so the node can create its on-chain identity (DID).
|
|
117
|
+
Without it the node cannot sign transactions, participate in markets, or
|
|
118
|
+
hold a wallet — it is essentially non-functional.
|
|
119
|
+
|
|
120
|
+
Provide one via either:
|
|
121
|
+
--passphrase <string>
|
|
122
|
+
CLAW_PASSPHRASE=<string> (environment variable)
|
|
123
|
+
|
|
124
|
+
Example:
|
|
125
|
+
clawnetd --passphrase "my-secure-passphrase"
|
|
126
|
+
CLAW_PASSPHRASE="my-secure-passphrase" clawnetd
|
|
127
|
+
`);
|
|
128
|
+
process.exit(1);
|
|
129
|
+
}
|
|
130
|
+
const paths = resolveStoragePaths(args.dataDir);
|
|
131
|
+
const config = await loadConfig(paths);
|
|
132
|
+
const logger = createLogger({
|
|
133
|
+
level: config.logging?.level ?? 'info',
|
|
134
|
+
file: config.logging?.file,
|
|
135
|
+
});
|
|
136
|
+
// ── Load optional chain config from config.yaml ─────────────────────
|
|
137
|
+
let chainConfig;
|
|
138
|
+
try {
|
|
139
|
+
const raw = await readFile(paths.configFile, 'utf8');
|
|
140
|
+
const parsed = parse(raw);
|
|
141
|
+
if (parsed?.chain) {
|
|
142
|
+
chainConfig = ChainConfigSchema.parse(parsed.chain);
|
|
143
|
+
logger.info('[clawnetd] On-chain config loaded — EventIndexer will start');
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
catch (err) {
|
|
147
|
+
// If the file exists but chain section is invalid, warn but continue
|
|
148
|
+
if (err instanceof Error && 'issues' in err) {
|
|
149
|
+
logger.warn('[clawnetd] Invalid chain config in config.yaml — skipping: %s', err.message);
|
|
150
|
+
}
|
|
151
|
+
// ENOENT is fine — no config file means no chain config
|
|
152
|
+
}
|
|
153
|
+
const node = new ClawNetNode({
|
|
154
|
+
dataDir: args.dataDir,
|
|
155
|
+
passphrase: args.passphrase,
|
|
156
|
+
chain: chainConfig,
|
|
157
|
+
network: args.network,
|
|
158
|
+
api: {
|
|
159
|
+
enabled: args.noApi ? false : true,
|
|
160
|
+
host: args.apiHost,
|
|
161
|
+
port: args.apiPort,
|
|
162
|
+
},
|
|
163
|
+
p2p: {
|
|
164
|
+
listen: args.listen.length ? args.listen : config.p2p?.listen,
|
|
165
|
+
bootstrap: args.bootstrap.length ? args.bootstrap : config.p2p?.bootstrap,
|
|
166
|
+
},
|
|
167
|
+
});
|
|
168
|
+
if (options.attachSignals !== false) {
|
|
169
|
+
process.on('SIGINT', () => void shutdown(node, 'SIGINT', logger));
|
|
170
|
+
process.on('SIGTERM', () => void shutdown(node, 'SIGTERM', logger));
|
|
171
|
+
}
|
|
172
|
+
await node.start();
|
|
173
|
+
logger.info('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
|
|
174
|
+
logger.info('clawnetd');
|
|
175
|
+
logger.info('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
|
|
176
|
+
logger.info(`Data Dir : ${paths.root}`);
|
|
177
|
+
logger.info(`Peer Id : ${node.getPeerId() ?? 'unknown'}`);
|
|
178
|
+
logger.info(`DID : ${node.getDid() ?? '(pending)'}`);
|
|
179
|
+
const effectiveNetwork = args.network ?? config.network;
|
|
180
|
+
logger.info(`Network : ${effectiveNetwork}`);
|
|
181
|
+
if (effectiveNetwork === 'mainnet') {
|
|
182
|
+
logger.info('[clawnetd] Mainnet mode: dev routes (faucet) disabled, API key required');
|
|
183
|
+
}
|
|
184
|
+
if (liquidityPolicyValidation.config) {
|
|
185
|
+
const lp = liquidityPolicyValidation.config;
|
|
186
|
+
logger.info(`Liquidity policy: address=${lp.liquidityAddress}, multisig=${lp.liquidityWalletControl}, monthlyCap=${lp.liquidityMonthlyBudgetCap}%, recycleEvery=${lp.liquidityRecycleIntervalDays}d`);
|
|
187
|
+
}
|
|
188
|
+
logger.info('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
|
|
189
|
+
let healthTimer;
|
|
190
|
+
if (args.healthIntervalMs > 0) {
|
|
191
|
+
healthTimer = setInterval(() => {
|
|
192
|
+
const health = node.getHealth();
|
|
193
|
+
if (health.ok) {
|
|
194
|
+
logger.debug('[clawnetd] health ok', health.checks);
|
|
195
|
+
}
|
|
196
|
+
else {
|
|
197
|
+
logger.warn('[clawnetd] health check failed', health.checks);
|
|
198
|
+
}
|
|
199
|
+
}, args.healthIntervalMs);
|
|
200
|
+
healthTimer.unref();
|
|
201
|
+
}
|
|
202
|
+
const stop = async () => {
|
|
203
|
+
if (healthTimer) {
|
|
204
|
+
clearInterval(healthTimer);
|
|
205
|
+
healthTimer = undefined;
|
|
206
|
+
}
|
|
207
|
+
await node.stop();
|
|
208
|
+
};
|
|
209
|
+
return { node, logger, stop };
|
|
210
|
+
}
|
|
211
|
+
async function shutdown(node, signal, logger) {
|
|
212
|
+
if (logger) {
|
|
213
|
+
logger.info(`[clawnetd] received ${signal}, stopping...`);
|
|
214
|
+
}
|
|
215
|
+
else {
|
|
216
|
+
console.log(`[clawnetd] received ${signal}, stopping...`);
|
|
217
|
+
}
|
|
218
|
+
await node.stop();
|
|
219
|
+
process.exit(0);
|
|
220
|
+
}
|
|
221
|
+
function printHelp() {
|
|
222
|
+
console.log(`
|
|
223
|
+
clawnetd [options]
|
|
224
|
+
|
|
225
|
+
Options:
|
|
226
|
+
--data-dir <path> Override storage root
|
|
227
|
+
--no-api Disable local API server
|
|
228
|
+
--api-host <host> API host (default: 127.0.0.1)
|
|
229
|
+
--api-port <port> API port (default: 9528)
|
|
230
|
+
--listen <multiaddr> Add libp2p listen multiaddr (repeatable)
|
|
231
|
+
--bootstrap <multiaddr> Add bootstrap peer multiaddr (repeatable)
|
|
232
|
+
--health-interval-ms <ms> Health check interval (default: 30000, 0 to disable)
|
|
233
|
+
--passphrase <str> Passphrase for node identity key (REQUIRED, env: CLAW_PASSPHRASE)
|
|
234
|
+
--network <type> Network type: mainnet|testnet|devnet (overrides config.yaml, env: CLAW_NETWORK)
|
|
235
|
+
-h, --help Show help
|
|
236
|
+
`);
|
|
237
|
+
}
|
|
238
|
+
// Only auto-run when executed directly (not when imported by tests)
|
|
239
|
+
const isDirectRun = typeof process !== 'undefined' &&
|
|
240
|
+
process.argv[1] &&
|
|
241
|
+
(process.argv[1].endsWith('daemon.js') || process.argv[1].endsWith('daemon.ts'));
|
|
242
|
+
if (isDirectRun) {
|
|
243
|
+
void main().catch((error) => {
|
|
244
|
+
console.error('[clawnetd] fatal error:', error);
|
|
245
|
+
process.exit(1);
|
|
246
|
+
});
|
|
247
|
+
}
|
|
248
|
+
//# sourceMappingURL=daemon.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"daemon.js","sourceRoot":"","sources":["../src/daemon.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAAoB,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACjF,OAAO,EAAE,8BAA8B,EAAE,MAAM,8BAA8B,CAAC;AAc9E,SAAS,SAAS,CAAC,IAAc;IAC/B,IAAI,OAA2B,CAAC;IAChC,IAAI,KAAK,GAAG,KAAK,CAAC;IAClB,IAAI,OAA2B,CAAC;IAChC,IAAI,OAA2B,CAAC;IAChC,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,IAAI,gBAAgB,GAAG,MAAM,CAAC;IAC9B,IAAI,UAA8B,CAAC;IACnC,IAAI,OAAqD,CAAC;IAE1D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,GAAG,KAAK,YAAY,EAAE,CAAC;YACzB,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YACpB,SAAS;QACX,CAAC;QACD,IAAI,GAAG,KAAK,UAAU,EAAE,CAAC;YACvB,KAAK,GAAG,IAAI,CAAC;YACb,SAAS;QACX,CAAC;QACD,IAAI,GAAG,KAAK,YAAY,EAAE,CAAC;YACzB,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YACpB,SAAS;QACX,CAAC;QACD,IAAI,GAAG,KAAK,YAAY,EAAE,CAAC;YACzB,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YAC5B,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACxC,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,IAAI,MAAM,GAAG,KAAK,EAAE,CAAC;gBACzD,OAAO,CAAC,KAAK,CAAC,8BAA8B,GAAG,qBAAqB,CAAC,CAAC;gBACtE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,OAAO,GAAG,MAAM,CAAC;YACjB,SAAS;QACX,CAAC;QACD,IAAI,GAAG,KAAK,UAAU,EAAE,CAAC;YACvB,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YACxB,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACrB,CAAC;YACD,SAAS;QACX,CAAC;QACD,IAAI,GAAG,KAAK,aAAa,EAAE,CAAC;YAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YACxB,IAAI,KAAK,EAAE,CAAC;gBACV,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACxB,CAAC;YACD,SAAS;QACX,CAAC;QACD,IAAI,GAAG,KAAK,sBAAsB,EAAE,CAAC;YACnC,gBAAgB,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;YACxD,SAAS;QACX,CAAC;QACD,IAAI,GAAG,KAAK,cAAc,EAAE,CAAC;YAC3B,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YACvB,SAAS;QACX,CAAC;QACD,IAAI,GAAG,KAAK,WAAW,EAAE,CAAC;YACxB,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YACtB,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;gBAC/D,OAAO,CAAC,KAAK,CAAC,uCAAuC,GAAG,mCAAmC,CAAC,CAAC;gBAC7F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,OAAO,GAAG,GAAG,CAAC;YACd,SAAS;QACX,CAAC;QACD,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACrC,SAAS,EAAE,CAAC;YACZ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,OAAO,CAAC,KAAK,CAAC,8BAA8B,GAAG,EAAE,CAAC,CAAC;QACnD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,gBAAgB,GAAG,CAAC,EAAE,CAAC;QAC3D,OAAO,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;QACzD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,OAAO;QACL,OAAO;QACP,KAAK;QACL,OAAO;QACP,OAAO;QACP,MAAM;QACN,SAAS;QACT,gBAAgB;QAChB,UAAU,EAAE,UAAU,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe;QACrD,OAAO,EAAE,OAAO,IAAK,OAAO,CAAC,GAAG,CAAC,YAA6D;KAC/F,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,IAAI,CAAC,OAAiB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACxD,MAAM,WAAW,CAAC,IAAI,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,IAAc,EACd,UAAuC,EAAE;IAMzC,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAC7B,MAAM,yBAAyB,GAAG,8BAA8B,EAAE,CAAC;IAEnE,IAAI,yBAAyB,CAAC,OAAO,IAAI,yBAAyB,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrF,MAAM,OAAO,GAAG,yBAAyB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrF,OAAO,CAAC,KAAK,CACX,gEAAgE,OAAO,MAAM;YAC3E,qGAAqG;YACrG,qFAAqF,CACxF,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,uEAAuE;IACvE,sEAAsE;IACtE,gEAAgE;IAChE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;QACrB,OAAO,CAAC,KAAK,CACX;;;;;;;;;;;;;CAaL,CACI,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,KAAK,GAAG,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAChD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,KAAK,CAAC,CAAC;IACvC,MAAM,MAAM,GAAG,YAAY,CAAC;QAC1B,KAAK,EAAE,MAAM,CAAC,OAAO,EAAE,KAAK,IAAI,MAAM;QACtC,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,IAAI;KAC3B,CAAC,CAAC;IAEH,uEAAuE;IACvE,IAAI,WAAoC,CAAC;IACzC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QACrD,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAA4B,CAAC;QACrD,IAAI,MAAM,EAAE,KAAK,EAAE,CAAC;YAClB,WAAW,GAAG,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACpD,MAAM,CAAC,IAAI,CAAC,6DAA6D,CAAC,CAAC;QAC7E,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,qEAAqE;QACrE,IAAI,GAAG,YAAY,KAAK,IAAI,QAAQ,IAAI,GAAG,EAAE,CAAC;YAC5C,MAAM,CAAC,IAAI,CAAC,+DAA+D,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;QAC5F,CAAC;QACD,wDAAwD;IAC1D,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,WAAW,CAAC;QAC3B,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,KAAK,EAAE,WAAW;QAClB,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,GAAG,EAAE;YACH,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI;YAClC,IAAI,EAAE,IAAI,CAAC,OAAO;YAClB,IAAI,EAAE,IAAI,CAAC,OAAO;SACnB;QACD,GAAG,EAAE;YACH,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM;YAC7D,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,SAAS;SAC1E;KACF,CAAC,CAAC;IAEH,IAAI,OAAO,CAAC,aAAa,KAAK,KAAK,EAAE,CAAC;QACpC,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,KAAK,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;QAClE,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,KAAK,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;IACtE,CAAC;IAED,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;IACnB,MAAM,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;IACxD,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACxB,MAAM,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;IACxD,MAAM,CAAC,IAAI,CAAC,cAAc,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IACxC,MAAM,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,SAAS,EAAE,IAAI,SAAS,EAAE,CAAC,CAAC;IAC3D,MAAM,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,MAAM,EAAE,IAAI,WAAW,EAAE,CAAC,CAAC;IAC1D,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC;IACxD,MAAM,CAAC,IAAI,CAAC,cAAc,gBAAgB,EAAE,CAAC,CAAC;IAC9C,IAAI,gBAAgB,KAAK,SAAS,EAAE,CAAC;QACnC,MAAM,CAAC,IAAI,CAAC,yEAAyE,CAAC,CAAC;IACzF,CAAC;IACD,IAAI,yBAAyB,CAAC,MAAM,EAAE,CAAC;QACrC,MAAM,EAAE,GAAG,yBAAyB,CAAC,MAAM,CAAC;QAC5C,MAAM,CAAC,IAAI,CACT,6BAA6B,EAAE,CAAC,gBAAgB,cAAc,EAAE,CAAC,sBAAsB,gBAAgB,EAAE,CAAC,yBAAyB,mBAAmB,EAAE,CAAC,4BAA4B,GAAG,CACzL,CAAC;IACJ,CAAC;IACD,MAAM,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;IAExD,IAAI,WAAuC,CAAC;IAC5C,IAAI,IAAI,CAAC,gBAAgB,GAAG,CAAC,EAAE,CAAC;QAC9B,WAAW,GAAG,WAAW,CAAC,GAAG,EAAE;YAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;YAChC,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;gBACd,MAAM,CAAC,KAAK,CAAC,sBAAsB,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;YACtD,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,CAAC,gCAAgC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;YAC/D,CAAC;QACH,CAAC,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC1B,WAAW,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;IAED,MAAM,IAAI,GAAG,KAAK,IAAmB,EAAE;QACrC,IAAI,WAAW,EAAE,CAAC;YAChB,aAAa,CAAC,WAAW,CAAC,CAAC;YAC3B,WAAW,GAAG,SAAS,CAAC;QAC1B,CAAC;QACD,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;IACpB,CAAC,CAAC;IAEF,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AAChC,CAAC;AAED,KAAK,UAAU,QAAQ,CACrB,IAAiB,EACjB,MAAc,EACd,MAAwC;IAExC,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,CAAC,IAAI,CAAC,uBAAuB,MAAM,eAAe,CAAC,CAAC;IAC5D,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,uBAAuB,MAAM,eAAe,CAAC,CAAC;IAC5D,CAAC;IACD,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;IAClB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,SAAS,SAAS;IAChB,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;CAcb,CAAC,CAAC;AACH,CAAC;AAED,oEAAoE;AACpE,MAAM,WAAW,GACf,OAAO,OAAO,KAAK,WAAW;IAC9B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IACf,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC;AAEnF,IAAI,WAAW,EAAE,CAAC;IAChB,KAAK,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;QAC1B,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;QAChD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
import { EventEnvelope, EventStore, P2PConfig, SnapshotRecord, SnapshotSchedulePolicy, SnapshotStore } from '@claw-network/core';
|
|
2
|
+
import { P2PSyncConfig } from './p2p/sync.js';
|
|
3
|
+
import { ApiServerConfig } from './api/server.js';
|
|
4
|
+
import { type ChainConfig } from './services/index.js';
|
|
5
|
+
import { type EventIndexerConfig } from './indexer/index.js';
|
|
6
|
+
export interface NodeRuntimeConfig {
|
|
7
|
+
dataDir?: string;
|
|
8
|
+
passphrase?: string;
|
|
9
|
+
api?: Partial<ApiServerConfig> & {
|
|
10
|
+
enabled?: boolean;
|
|
11
|
+
};
|
|
12
|
+
p2p?: Partial<P2PConfig>;
|
|
13
|
+
sync?: Partial<P2PSyncConfig> & {
|
|
14
|
+
rangeIntervalMs?: number;
|
|
15
|
+
snapshotIntervalMs?: number;
|
|
16
|
+
requestRangeOnStart?: boolean;
|
|
17
|
+
requestSnapshotOnStart?: boolean;
|
|
18
|
+
validateSnapshotState?: (snapshot: import('@claw-network/core').SnapshotRecord, events: Uint8Array[]) => Promise<boolean> | boolean;
|
|
19
|
+
};
|
|
20
|
+
snapshotBuilder?: (context: {
|
|
21
|
+
eventStore: EventStore;
|
|
22
|
+
snapshotStore: SnapshotStore;
|
|
23
|
+
lastSnapshot: SnapshotRecord | null;
|
|
24
|
+
}) => Promise<SnapshotRecord | null>;
|
|
25
|
+
snapshotPolicy?: Partial<SnapshotSchedulePolicy>;
|
|
26
|
+
resolveControllerPublicKey?: (controllerDid: string) => Promise<Uint8Array | null>;
|
|
27
|
+
/** On-chain configuration. When provided, enables chain read/write via ContractProvider + WalletService. */
|
|
28
|
+
chain?: ChainConfig;
|
|
29
|
+
/** Optional overrides for the event indexer polling behaviour. */
|
|
30
|
+
indexer?: EventIndexerConfig;
|
|
31
|
+
/** Network type override (mainnet|testnet|devnet). Overrides config.yaml value. */
|
|
32
|
+
network?: 'mainnet' | 'testnet' | 'devnet';
|
|
33
|
+
}
|
|
34
|
+
export declare const DEFAULT_SYNC_RUNTIME_CONFIG: {
|
|
35
|
+
rangeIntervalMs: number;
|
|
36
|
+
snapshotIntervalMs: number;
|
|
37
|
+
requestRangeOnStart: boolean;
|
|
38
|
+
requestSnapshotOnStart: boolean;
|
|
39
|
+
};
|
|
40
|
+
export declare const DEFAULT_NODE_RUNTIME_CONFIG: NodeRuntimeConfig;
|
|
41
|
+
export declare class ClawNetNode {
|
|
42
|
+
private readonly config;
|
|
43
|
+
private p2p?;
|
|
44
|
+
private sync?;
|
|
45
|
+
private eventDb?;
|
|
46
|
+
private stateDb?;
|
|
47
|
+
private eventStore?;
|
|
48
|
+
private snapshotStore?;
|
|
49
|
+
private snapshotScheduler?;
|
|
50
|
+
private contractStore?;
|
|
51
|
+
private reputationStore?;
|
|
52
|
+
private daoStore?;
|
|
53
|
+
private marketSearchStore?;
|
|
54
|
+
private infoContentStore?;
|
|
55
|
+
private rangeTimer?;
|
|
56
|
+
private snapshotTimer?;
|
|
57
|
+
private meshAmplifierTimer?;
|
|
58
|
+
private apiServer?;
|
|
59
|
+
private contractProvider?;
|
|
60
|
+
private indexerStore?;
|
|
61
|
+
private eventIndexer?;
|
|
62
|
+
private indexerQuery?;
|
|
63
|
+
private walletService?;
|
|
64
|
+
private identityService?;
|
|
65
|
+
private reputationService?;
|
|
66
|
+
private contractsService?;
|
|
67
|
+
private daoService?;
|
|
68
|
+
private apiKeyStore?;
|
|
69
|
+
private peerId?;
|
|
70
|
+
private peerPrivateKey?;
|
|
71
|
+
private startedAt?;
|
|
72
|
+
private persistedConfig?;
|
|
73
|
+
private starting?;
|
|
74
|
+
private stopping?;
|
|
75
|
+
private cachedDid?;
|
|
76
|
+
constructor(config?: NodeRuntimeConfig);
|
|
77
|
+
start(): Promise<void>;
|
|
78
|
+
private startInternal;
|
|
79
|
+
stop(): Promise<void>;
|
|
80
|
+
private stopInternal;
|
|
81
|
+
getPeerId(): string | null;
|
|
82
|
+
/** Return the node's DID (synchronous, cached after start). */
|
|
83
|
+
getDid(): string | null;
|
|
84
|
+
getHealth(): {
|
|
85
|
+
ok: boolean;
|
|
86
|
+
checks: {
|
|
87
|
+
p2p: boolean;
|
|
88
|
+
sync: boolean;
|
|
89
|
+
eventStore: boolean;
|
|
90
|
+
api: boolean;
|
|
91
|
+
};
|
|
92
|
+
};
|
|
93
|
+
private buildNodeStatus;
|
|
94
|
+
private buildNodePeers;
|
|
95
|
+
private buildNodeConfig;
|
|
96
|
+
publishEvent(envelope: EventEnvelope): Promise<string>;
|
|
97
|
+
private initReputationStore;
|
|
98
|
+
private initContractStore;
|
|
99
|
+
private initDaoStore;
|
|
100
|
+
private initMarketSearchStore;
|
|
101
|
+
private initInfoContentStore;
|
|
102
|
+
private applyEventStores;
|
|
103
|
+
private parseEventEnvelope;
|
|
104
|
+
private resolveNetwork;
|
|
105
|
+
private resolveP2PPort;
|
|
106
|
+
private resolveLocalDid;
|
|
107
|
+
private startSyncLoops;
|
|
108
|
+
private stopSyncLoops;
|
|
109
|
+
/**
|
|
110
|
+
* Persistent connection watchdog with two phases:
|
|
111
|
+
*
|
|
112
|
+
* Phase 1 (0–60 s): Aggressive mesh amplification every 5 s.
|
|
113
|
+
* Discovers peers via DHT random-walk + peerStore dial.
|
|
114
|
+
* Phase 2 (60 s+): Every 30 s, check connection count. If below
|
|
115
|
+
* `minConnections` (1), re-dial bootstrap peers and
|
|
116
|
+
* run another amplify cycle to rejoin the mesh.
|
|
117
|
+
*
|
|
118
|
+
* This replaces the old one-shot amplifier that stopped permanently after 60 s
|
|
119
|
+
* and left the node unable to reconnect after transient network disruptions.
|
|
120
|
+
*/
|
|
121
|
+
private startMeshAmplifier;
|
|
122
|
+
private stopMeshAmplifier;
|
|
123
|
+
private requestRangeTick;
|
|
124
|
+
private requestSnapshotTick;
|
|
125
|
+
private maybeCreateSnapshot;
|
|
126
|
+
private loadOrCreatePeerId;
|
|
127
|
+
private ensureIdentityKeyRecord;
|
|
128
|
+
private extractPeerPrivateKey;
|
|
129
|
+
}
|
|
130
|
+
export { DEFAULT_P2P_SYNC_CONFIG } from './p2p/sync.js';
|
|
131
|
+
export * from './p2p/sync.js';
|
|
132
|
+
export { ApiKeyStore } from './api/api-key-store.js';
|
|
133
|
+
export type { ApiKeyRecord, ApiKeySummary } from './api/api-key-store.js';
|
|
134
|
+
export { getApiKeyAuth } from './api/auth.js';
|
|
135
|
+
export type { ApiKeyAuth } from './api/auth.js';
|
|
136
|
+
export type { NetworkType } from './api/types.js';
|
|
137
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|