@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
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* IndexerStore SQLite persistence for the Event Indexer.
|
|
3
|
+
*
|
|
4
|
+
* Manages all on-chain event data:
|
|
5
|
+
* - Generic `events` table (raw event log)
|
|
6
|
+
* - Module-specific materialized tables (transfers, contracts, proposals, votes, reviews, escrows)
|
|
7
|
+
* - Indexer metadata (last indexed block, etc.)
|
|
8
|
+
*
|
|
9
|
+
* Uses `better-sqlite3` for synchronous, single-connection access
|
|
10
|
+
* ideal for a single-node daemon where reads and writes are serialised.
|
|
11
|
+
*/
|
|
12
|
+
import Database from 'better-sqlite3';
|
|
13
|
+
// ---------------------------------------------------------------------------
|
|
14
|
+
// Schema DDL
|
|
15
|
+
// ---------------------------------------------------------------------------
|
|
16
|
+
const SCHEMA_SQL = `
|
|
17
|
+
-- Indexer metadata (last indexed block, etc.)
|
|
18
|
+
CREATE TABLE IF NOT EXISTS indexer_meta (
|
|
19
|
+
key TEXT PRIMARY KEY,
|
|
20
|
+
value TEXT NOT NULL
|
|
21
|
+
);
|
|
22
|
+
|
|
23
|
+
-- Generic event log (all contracts, all events)
|
|
24
|
+
CREATE TABLE IF NOT EXISTS events (
|
|
25
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
26
|
+
block INTEGER NOT NULL,
|
|
27
|
+
tx_hash TEXT NOT NULL,
|
|
28
|
+
log_index INTEGER NOT NULL,
|
|
29
|
+
contract TEXT NOT NULL,
|
|
30
|
+
event_name TEXT NOT NULL,
|
|
31
|
+
args TEXT NOT NULL,
|
|
32
|
+
timestamp INTEGER NOT NULL,
|
|
33
|
+
UNIQUE(tx_hash, log_index)
|
|
34
|
+
);
|
|
35
|
+
CREATE INDEX IF NOT EXISTS idx_events_block ON events(block);
|
|
36
|
+
CREATE INDEX IF NOT EXISTS idx_events_contract ON events(contract, event_name);
|
|
37
|
+
|
|
38
|
+
-- Wallet: Token transfer history
|
|
39
|
+
CREATE TABLE IF NOT EXISTS wallet_transfers (
|
|
40
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
41
|
+
block INTEGER NOT NULL,
|
|
42
|
+
tx_hash TEXT NOT NULL,
|
|
43
|
+
from_addr TEXT NOT NULL,
|
|
44
|
+
to_addr TEXT NOT NULL,
|
|
45
|
+
amount TEXT NOT NULL,
|
|
46
|
+
timestamp INTEGER NOT NULL
|
|
47
|
+
);
|
|
48
|
+
CREATE INDEX IF NOT EXISTS idx_transfers_from ON wallet_transfers(from_addr);
|
|
49
|
+
CREATE INDEX IF NOT EXISTS idx_transfers_to ON wallet_transfers(to_addr);
|
|
50
|
+
|
|
51
|
+
-- Wallet: Escrow records
|
|
52
|
+
CREATE TABLE IF NOT EXISTS escrows (
|
|
53
|
+
escrow_id TEXT PRIMARY KEY,
|
|
54
|
+
depositor TEXT NOT NULL,
|
|
55
|
+
beneficiary TEXT NOT NULL,
|
|
56
|
+
arbiter TEXT NOT NULL,
|
|
57
|
+
amount TEXT NOT NULL,
|
|
58
|
+
status INTEGER NOT NULL DEFAULT 0,
|
|
59
|
+
created_at INTEGER NOT NULL,
|
|
60
|
+
updated_at INTEGER NOT NULL
|
|
61
|
+
);
|
|
62
|
+
|
|
63
|
+
-- Service contracts
|
|
64
|
+
CREATE TABLE IF NOT EXISTS service_contracts (
|
|
65
|
+
contract_id TEXT PRIMARY KEY,
|
|
66
|
+
client TEXT NOT NULL,
|
|
67
|
+
provider TEXT NOT NULL,
|
|
68
|
+
status INTEGER NOT NULL,
|
|
69
|
+
created_at INTEGER NOT NULL,
|
|
70
|
+
updated_at INTEGER NOT NULL
|
|
71
|
+
);
|
|
72
|
+
CREATE INDEX IF NOT EXISTS idx_svc_client ON service_contracts(client);
|
|
73
|
+
CREATE INDEX IF NOT EXISTS idx_svc_provider ON service_contracts(provider);
|
|
74
|
+
CREATE INDEX IF NOT EXISTS idx_svc_status ON service_contracts(status);
|
|
75
|
+
|
|
76
|
+
-- DAO proposals
|
|
77
|
+
CREATE TABLE IF NOT EXISTS proposals (
|
|
78
|
+
proposal_id INTEGER PRIMARY KEY,
|
|
79
|
+
proposer TEXT NOT NULL,
|
|
80
|
+
p_type INTEGER NOT NULL,
|
|
81
|
+
status INTEGER NOT NULL,
|
|
82
|
+
created_at INTEGER NOT NULL
|
|
83
|
+
);
|
|
84
|
+
|
|
85
|
+
-- DAO votes
|
|
86
|
+
CREATE TABLE IF NOT EXISTS votes (
|
|
87
|
+
proposal_id INTEGER NOT NULL,
|
|
88
|
+
voter TEXT NOT NULL,
|
|
89
|
+
support INTEGER NOT NULL,
|
|
90
|
+
weight TEXT NOT NULL,
|
|
91
|
+
timestamp INTEGER NOT NULL,
|
|
92
|
+
PRIMARY KEY(proposal_id, voter)
|
|
93
|
+
);
|
|
94
|
+
|
|
95
|
+
-- Reputation reviews
|
|
96
|
+
CREATE TABLE IF NOT EXISTS reviews (
|
|
97
|
+
review_hash TEXT PRIMARY KEY,
|
|
98
|
+
reviewer_did TEXT NOT NULL,
|
|
99
|
+
subject_did TEXT NOT NULL,
|
|
100
|
+
related_tx_hash TEXT NOT NULL,
|
|
101
|
+
timestamp INTEGER NOT NULL
|
|
102
|
+
);
|
|
103
|
+
CREATE INDEX IF NOT EXISTS idx_reviews_subject ON reviews(subject_did);
|
|
104
|
+
|
|
105
|
+
-- DID cache (identity module)
|
|
106
|
+
CREATE TABLE IF NOT EXISTS did_cache (
|
|
107
|
+
did_hash TEXT PRIMARY KEY,
|
|
108
|
+
controller TEXT NOT NULL,
|
|
109
|
+
active_key TEXT NOT NULL,
|
|
110
|
+
is_active INTEGER NOT NULL DEFAULT 1,
|
|
111
|
+
updated_at INTEGER NOT NULL
|
|
112
|
+
);
|
|
113
|
+
`;
|
|
114
|
+
// ---------------------------------------------------------------------------
|
|
115
|
+
// IndexerStore
|
|
116
|
+
// ---------------------------------------------------------------------------
|
|
117
|
+
export class IndexerStore {
|
|
118
|
+
_db;
|
|
119
|
+
constructor(dbPath) {
|
|
120
|
+
this._db = new Database(dbPath);
|
|
121
|
+
this._db.pragma('journal_mode = WAL');
|
|
122
|
+
this._db.pragma('foreign_keys = ON');
|
|
123
|
+
this._db.exec(SCHEMA_SQL);
|
|
124
|
+
}
|
|
125
|
+
/** Expose the underlying Database instance (for IndexerQuery). */
|
|
126
|
+
get database() {
|
|
127
|
+
return this._db;
|
|
128
|
+
}
|
|
129
|
+
// ── Metadata ────────────────────────────────────────────────────────────
|
|
130
|
+
getMeta(key) {
|
|
131
|
+
const row = this._db
|
|
132
|
+
.prepare('SELECT value FROM indexer_meta WHERE key = ?')
|
|
133
|
+
.get(key);
|
|
134
|
+
return row?.value;
|
|
135
|
+
}
|
|
136
|
+
setMeta(key, value) {
|
|
137
|
+
this._db
|
|
138
|
+
.prepare('INSERT INTO indexer_meta (key, value) VALUES (?, ?) ON CONFLICT(key) DO UPDATE SET value = excluded.value')
|
|
139
|
+
.run(key, value);
|
|
140
|
+
}
|
|
141
|
+
get lastIndexedBlock() {
|
|
142
|
+
const val = this.getMeta('last_indexed_block');
|
|
143
|
+
return val ? Number(val) : 0;
|
|
144
|
+
}
|
|
145
|
+
set lastIndexedBlock(block) {
|
|
146
|
+
this.setMeta('last_indexed_block', String(block));
|
|
147
|
+
}
|
|
148
|
+
// ── Generic events ──────────────────────────────────────────────────────
|
|
149
|
+
insertEvent(event) {
|
|
150
|
+
this._db
|
|
151
|
+
.prepare(`INSERT OR IGNORE INTO events (block, tx_hash, log_index, contract, event_name, args, timestamp)
|
|
152
|
+
VALUES (?, ?, ?, ?, ?, ?, ?)`)
|
|
153
|
+
.run(event.block, event.txHash, event.logIndex, event.contract, event.eventName, event.args, event.timestamp);
|
|
154
|
+
}
|
|
155
|
+
// ── Wallet transfers ────────────────────────────────────────────────────
|
|
156
|
+
insertTransfer(t) {
|
|
157
|
+
this._db
|
|
158
|
+
.prepare(`INSERT INTO wallet_transfers (block, tx_hash, from_addr, to_addr, amount, timestamp)
|
|
159
|
+
VALUES (?, ?, ?, ?, ?, ?)`)
|
|
160
|
+
.run(t.block, t.txHash, t.fromAddr, t.toAddr, t.amount, t.timestamp);
|
|
161
|
+
}
|
|
162
|
+
// ── Escrows ─────────────────────────────────────────────────────────────
|
|
163
|
+
upsertEscrow(e) {
|
|
164
|
+
this._db
|
|
165
|
+
.prepare(`INSERT INTO escrows (escrow_id, depositor, beneficiary, arbiter, amount, status, created_at, updated_at)
|
|
166
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?)
|
|
167
|
+
ON CONFLICT(escrow_id) DO UPDATE SET
|
|
168
|
+
status = excluded.status,
|
|
169
|
+
amount = excluded.amount,
|
|
170
|
+
updated_at = excluded.updated_at`)
|
|
171
|
+
.run(e.escrowId, e.depositor, e.beneficiary, e.arbiter, e.amount, e.status, e.createdAt, e.updatedAt);
|
|
172
|
+
}
|
|
173
|
+
updateEscrowStatus(escrowId, status, updatedAt) {
|
|
174
|
+
this._db
|
|
175
|
+
.prepare('UPDATE escrows SET status = ?, updated_at = ? WHERE escrow_id = ?')
|
|
176
|
+
.run(status, updatedAt, escrowId);
|
|
177
|
+
}
|
|
178
|
+
updateEscrowAmount(escrowId, amount, updatedAt) {
|
|
179
|
+
this._db
|
|
180
|
+
.prepare('UPDATE escrows SET amount = ?, updated_at = ? WHERE escrow_id = ?')
|
|
181
|
+
.run(amount, updatedAt, escrowId);
|
|
182
|
+
}
|
|
183
|
+
// ── Service contracts ───────────────────────────────────────────────────
|
|
184
|
+
upsertServiceContract(c) {
|
|
185
|
+
this._db
|
|
186
|
+
.prepare(`INSERT INTO service_contracts (contract_id, client, provider, status, created_at, updated_at)
|
|
187
|
+
VALUES (?, ?, ?, ?, ?, ?)
|
|
188
|
+
ON CONFLICT(contract_id) DO UPDATE SET
|
|
189
|
+
status = excluded.status,
|
|
190
|
+
updated_at = excluded.updated_at`)
|
|
191
|
+
.run(c.contractId, c.client, c.provider, c.status, c.createdAt, c.updatedAt);
|
|
192
|
+
}
|
|
193
|
+
updateServiceContractStatus(contractId, status, updatedAt) {
|
|
194
|
+
this._db
|
|
195
|
+
.prepare('UPDATE service_contracts SET status = ?, updated_at = ? WHERE contract_id = ?')
|
|
196
|
+
.run(status, updatedAt, contractId);
|
|
197
|
+
}
|
|
198
|
+
// ── DAO proposals ───────────────────────────────────────────────────────
|
|
199
|
+
upsertProposal(p) {
|
|
200
|
+
this._db
|
|
201
|
+
.prepare(`INSERT INTO proposals (proposal_id, proposer, p_type, status, created_at)
|
|
202
|
+
VALUES (?, ?, ?, ?, ?)
|
|
203
|
+
ON CONFLICT(proposal_id) DO UPDATE SET
|
|
204
|
+
status = excluded.status`)
|
|
205
|
+
.run(p.proposalId, p.proposer, p.pType, p.status, p.createdAt);
|
|
206
|
+
}
|
|
207
|
+
updateProposalStatus(proposalId, status) {
|
|
208
|
+
this._db
|
|
209
|
+
.prepare('UPDATE proposals SET status = ? WHERE proposal_id = ?')
|
|
210
|
+
.run(status, proposalId);
|
|
211
|
+
}
|
|
212
|
+
// ── DAO votes ───────────────────────────────────────────────────────────
|
|
213
|
+
insertVote(v) {
|
|
214
|
+
this._db
|
|
215
|
+
.prepare(`INSERT OR IGNORE INTO votes (proposal_id, voter, support, weight, timestamp)
|
|
216
|
+
VALUES (?, ?, ?, ?, ?)`)
|
|
217
|
+
.run(v.proposalId, v.voter, v.support, v.weight, v.timestamp);
|
|
218
|
+
}
|
|
219
|
+
// ── Reputation reviews ──────────────────────────────────────────────────
|
|
220
|
+
insertReview(r) {
|
|
221
|
+
this._db
|
|
222
|
+
.prepare(`INSERT OR IGNORE INTO reviews (review_hash, reviewer_did, subject_did, related_tx_hash, timestamp)
|
|
223
|
+
VALUES (?, ?, ?, ?, ?)`)
|
|
224
|
+
.run(r.reviewHash, r.reviewerDid, r.subjectDid, r.relatedTxHash, r.timestamp);
|
|
225
|
+
}
|
|
226
|
+
// ── DID cache ───────────────────────────────────────────────────────────
|
|
227
|
+
upsertDid(didHash, controller, activeKey, isActive, updatedAt) {
|
|
228
|
+
// When controller or activeKey is empty, preserve the existing value
|
|
229
|
+
// (e.g. KeyRotated only updates the key, DIDRevoked only updates is_active).
|
|
230
|
+
this._db
|
|
231
|
+
.prepare(`INSERT INTO did_cache (did_hash, controller, active_key, is_active, updated_at)
|
|
232
|
+
VALUES (?, ?, ?, ?, ?)
|
|
233
|
+
ON CONFLICT(did_hash) DO UPDATE SET
|
|
234
|
+
controller = CASE WHEN excluded.controller = '' THEN did_cache.controller ELSE excluded.controller END,
|
|
235
|
+
active_key = CASE WHEN excluded.active_key = '' THEN did_cache.active_key ELSE excluded.active_key END,
|
|
236
|
+
is_active = excluded.is_active,
|
|
237
|
+
updated_at = excluded.updated_at`)
|
|
238
|
+
.run(didHash, controller, activeKey, isActive ? 1 : 0, updatedAt);
|
|
239
|
+
}
|
|
240
|
+
// ── Transaction helper ──────────────────────────────────────────────────
|
|
241
|
+
/** Execute a batch of operations inside a single SQLite transaction. */
|
|
242
|
+
transaction(fn) {
|
|
243
|
+
return this._db.transaction(fn)();
|
|
244
|
+
}
|
|
245
|
+
// ── Lifecycle ───────────────────────────────────────────────────────────
|
|
246
|
+
close() {
|
|
247
|
+
this._db.close();
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
//# sourceMappingURL=store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/indexer/store.ts"],"names":[],"mappings":"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"}
|
package/dist/logger.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export type LogLevel = 'debug' | 'info' | 'warn' | 'error';
|
|
2
|
+
interface LoggerOptions {
|
|
3
|
+
level?: LogLevel;
|
|
4
|
+
file?: string;
|
|
5
|
+
}
|
|
6
|
+
export declare function createLogger(options?: LoggerOptions): {
|
|
7
|
+
debug: (...args: unknown[]) => void;
|
|
8
|
+
info: (...args: unknown[]) => void;
|
|
9
|
+
warn: (...args: unknown[]) => void;
|
|
10
|
+
error: (...args: unknown[]) => void;
|
|
11
|
+
};
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=logger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAE3D,UAAU,aAAa;IACrB,KAAK,CAAC,EAAE,QAAQ,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AASD,wBAAgB,YAAY,CAAC,OAAO,GAAE,aAAkB;qBAuBnC,OAAO,EAAE;oBACV,OAAO,EAAE;oBACT,OAAO,EAAE;qBACR,OAAO,EAAE;EAE7B"}
|
package/dist/logger.js
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { appendFile } from 'node:fs/promises';
|
|
2
|
+
import { format } from 'node:util';
|
|
3
|
+
const LEVEL_ORDER = {
|
|
4
|
+
debug: 10,
|
|
5
|
+
info: 20,
|
|
6
|
+
warn: 30,
|
|
7
|
+
error: 40,
|
|
8
|
+
};
|
|
9
|
+
export function createLogger(options = {}) {
|
|
10
|
+
const minLevel = options.level ?? 'info';
|
|
11
|
+
const minValue = LEVEL_ORDER[minLevel] ?? LEVEL_ORDER.info;
|
|
12
|
+
const filePath = options.file;
|
|
13
|
+
const log = (level, ...args) => {
|
|
14
|
+
if (LEVEL_ORDER[level] < minValue) {
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
const timestamp = new Date().toISOString();
|
|
18
|
+
const message = format(...args);
|
|
19
|
+
const line = `[${timestamp}] [${level.toUpperCase()}] ${message}`;
|
|
20
|
+
if (level === 'error') {
|
|
21
|
+
console.error(line);
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
console.log(line);
|
|
25
|
+
}
|
|
26
|
+
if (filePath) {
|
|
27
|
+
void appendFile(filePath, `${line}\n`, 'utf8');
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
return {
|
|
31
|
+
debug: (...args) => log('debug', ...args),
|
|
32
|
+
info: (...args) => log('info', ...args),
|
|
33
|
+
warn: (...args) => log('warn', ...args),
|
|
34
|
+
error: (...args) => log('error', ...args),
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AASnC,MAAM,WAAW,GAA6B;IAC5C,KAAK,EAAE,EAAE;IACT,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,KAAK,EAAE,EAAE;CACV,CAAC;AAEF,MAAM,UAAU,YAAY,CAAC,UAAyB,EAAE;IACtD,MAAM,QAAQ,GAAa,OAAO,CAAC,KAAK,IAAI,MAAM,CAAC;IACnD,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC;IAC3D,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAE9B,MAAM,GAAG,GAAG,CAAC,KAAe,EAAE,GAAG,IAAe,EAAQ,EAAE;QACxD,IAAI,WAAW,CAAC,KAAK,CAAC,GAAG,QAAQ,EAAE,CAAC;YAClC,OAAO;QACT,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC3C,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC;QAChC,MAAM,IAAI,GAAG,IAAI,SAAS,MAAM,KAAK,CAAC,WAAW,EAAE,KAAK,OAAO,EAAE,CAAC;QAClE,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;YACtB,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACpB,CAAC;QACD,IAAI,QAAQ,EAAE,CAAC;YACb,KAAK,UAAU,CAAC,QAAQ,EAAE,GAAG,IAAI,IAAI,EAAE,MAAM,CAAC,CAAC;QACjD,CAAC;IACH,CAAC,CAAC;IAEF,OAAO;QACL,KAAK,EAAE,CAAC,GAAG,IAAe,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC;QACpD,IAAI,EAAE,CAAC,GAAG,IAAe,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC;QAClD,IAAI,EAAE,CAAC,GAAG,IAAe,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC;QAClD,KAAK,EAAE,CAAC,GAAG,IAAe,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC;KACrD,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { EventStore, P2PNode, SnapshotRecord, SnapshotStore } from '@claw-network/core';
|
|
2
|
+
export type SybilPolicy = 'none' | 'allowlist' | 'pow' | 'stake';
|
|
3
|
+
export interface P2PSyncConfig {
|
|
4
|
+
maxEnvelopeBytes: number;
|
|
5
|
+
maxRangeLimit: number;
|
|
6
|
+
maxRangeBytes: number;
|
|
7
|
+
maxSnapshotBytes: number;
|
|
8
|
+
maxSnapshotTotalBytes: number;
|
|
9
|
+
minSnapshotSignatures: number;
|
|
10
|
+
rateLimitWindowMs: number;
|
|
11
|
+
maxMessagesPerWindow: number;
|
|
12
|
+
maxBytesPerWindow: number;
|
|
13
|
+
minPeerScore: number;
|
|
14
|
+
scoreIncrease: number;
|
|
15
|
+
scoreDecrease: number;
|
|
16
|
+
scoreDecayMs: number;
|
|
17
|
+
sybilPolicy: SybilPolicy;
|
|
18
|
+
allowlist: string[];
|
|
19
|
+
powTicketTtlMs: number;
|
|
20
|
+
stakeProofTtlMs: number;
|
|
21
|
+
minPowDifficulty: number;
|
|
22
|
+
verifySignatures: boolean;
|
|
23
|
+
verifyEventHash: boolean;
|
|
24
|
+
verifySnapshotHash: boolean;
|
|
25
|
+
verifySnapshotSignatures: boolean;
|
|
26
|
+
verifySnapshotState: boolean;
|
|
27
|
+
verifyPeerId: boolean;
|
|
28
|
+
subscribeEvents: boolean;
|
|
29
|
+
}
|
|
30
|
+
export interface P2PSyncOptions extends Partial<P2PSyncConfig> {
|
|
31
|
+
peerId: string;
|
|
32
|
+
peerPrivateKey: Uint8Array;
|
|
33
|
+
resolvePeerPublicKey?: (peerId: string) => Promise<Uint8Array | null>;
|
|
34
|
+
resolveControllerPublicKey?: (controllerDid: string) => Promise<Uint8Array | null>;
|
|
35
|
+
onEventApplied?: (envelope: Record<string, unknown>, bytes: Uint8Array) => Promise<void> | void;
|
|
36
|
+
validateSnapshotState?: (snapshot: SnapshotRecord, events: Uint8Array[]) => Promise<boolean> | boolean;
|
|
37
|
+
}
|
|
38
|
+
export declare const DEFAULT_P2P_SYNC_CONFIG: P2PSyncConfig;
|
|
39
|
+
export declare class P2PSync {
|
|
40
|
+
private readonly node;
|
|
41
|
+
private readonly eventStore;
|
|
42
|
+
private readonly snapshotStore;
|
|
43
|
+
private readonly options;
|
|
44
|
+
private readonly config;
|
|
45
|
+
private readonly resolvePeerPublicKey?;
|
|
46
|
+
private readonly resolveControllerPublicKey?;
|
|
47
|
+
private readonly onEventApplied?;
|
|
48
|
+
private readonly validateSnapshotState?;
|
|
49
|
+
private unsubscribeRequests?;
|
|
50
|
+
private unsubscribeResponses?;
|
|
51
|
+
private unsubscribeEvents?;
|
|
52
|
+
private unsubscribeMarketEvents?;
|
|
53
|
+
private readonly snapshotChunks;
|
|
54
|
+
private readonly snapshotChunkTtlMs;
|
|
55
|
+
private readonly allowlist;
|
|
56
|
+
private readonly powTickets;
|
|
57
|
+
private readonly stakeProofs;
|
|
58
|
+
private readonly peerStats;
|
|
59
|
+
private readonly peerScores;
|
|
60
|
+
private readonly peerRotations;
|
|
61
|
+
constructor(node: P2PNode, eventStore: EventStore, snapshotStore: SnapshotStore | null, options: P2PSyncOptions);
|
|
62
|
+
start(): Promise<void>;
|
|
63
|
+
stop(): Promise<void>;
|
|
64
|
+
requestRange(from: string, limit?: number): Promise<void>;
|
|
65
|
+
requestSnapshot(from?: string): Promise<void>;
|
|
66
|
+
private publishRequest;
|
|
67
|
+
private publishResponse;
|
|
68
|
+
private signEnvelope;
|
|
69
|
+
private handleRequest;
|
|
70
|
+
private handleResponse;
|
|
71
|
+
private handleEventEnvelope;
|
|
72
|
+
private handleRangeRequest;
|
|
73
|
+
private handleSnapshotRequest;
|
|
74
|
+
private applyRangeResponse;
|
|
75
|
+
private applySnapshotResponse;
|
|
76
|
+
private applyEventBytes;
|
|
77
|
+
private parseEventEnvelope;
|
|
78
|
+
private decodeRequest;
|
|
79
|
+
private decodeResponse;
|
|
80
|
+
private decodeEnvelope;
|
|
81
|
+
private resolvePublicKey;
|
|
82
|
+
private handlePowTicket;
|
|
83
|
+
private handleStakeProof;
|
|
84
|
+
private handlePeerRotate;
|
|
85
|
+
private isPeerEligible;
|
|
86
|
+
private isPowEligible;
|
|
87
|
+
private isStakeEligible;
|
|
88
|
+
private cleanupSybilCaches;
|
|
89
|
+
private collectSnapshotBytes;
|
|
90
|
+
/**
|
|
91
|
+
* Collect all events between two event-hash cursors.
|
|
92
|
+
*
|
|
93
|
+
* @param fromHash Event hash to start after (exclusive). null = start of log.
|
|
94
|
+
* @param toHash Event hash to stop at (inclusive). Must be an event hash
|
|
95
|
+
* present in the event store so the cursor comparison works.
|
|
96
|
+
* @returns Array of raw event bytes, or null if collection failed.
|
|
97
|
+
*/
|
|
98
|
+
private collectEventsForSnapshot;
|
|
99
|
+
private cleanupSnapshotChunks;
|
|
100
|
+
private isRateLimited;
|
|
101
|
+
private updatePeerScore;
|
|
102
|
+
private isPeerScoreEligible;
|
|
103
|
+
private verifyPeerId;
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=sync.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/p2p/sync.ts"],"names":[],"mappings":"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"}
|