@unifiedflow/cli 1.0.3 → 1.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +0,0 @@
1
- {"version":3,"file":"eventNormalizer.js","sourceRoot":"","sources":["../../src/services/eventNormalizer.ts"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- import * as anchor from "@coral-xyz/anchor";
2
- export declare const eventParser: anchor.EventParser;
3
- export declare function parseEventsSafely(logs: string[]): {
4
- name: string;
5
- data: any;
6
- }[];
7
- //# sourceMappingURL=eventParser.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"eventParser.d.ts","sourceRoot":"","sources":["../../src/services/eventParser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAuF5C,eAAO,MAAM,WAAW,oBAAgD,CAAC;AAEzE,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE;UAChB,MAAM;UAAQ,GAAG;IAYhD"}
@@ -1,130 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.eventParser = void 0;
37
- exports.parseEventsSafely = parseEventsSafely;
38
- const anchor = __importStar(require("@coral-xyz/anchor"));
39
- const web3_js_1 = require("@solana/web3.js");
40
- const decoder_1 = require("./decoder");
41
- const PROGRAM_ID = new web3_js_1.PublicKey(process.env.PROGRAM_ID);
42
- const legacyIdl = {
43
- version: "0.1.0",
44
- name: "unified_flow",
45
- instructions: [],
46
- accounts: [],
47
- types: [
48
- {
49
- name: "StreamCreated",
50
- type: {
51
- kind: "struct",
52
- fields: [
53
- { name: "stream", type: "pubkey" },
54
- { name: "creator", type: "pubkey" },
55
- { name: "recipient", type: "pubkey" },
56
- { name: "mint", type: "pubkey" },
57
- { name: "vault", type: "pubkey" },
58
- { name: "total_amount", type: "u64" },
59
- { name: "start_ts", type: "i64" },
60
- { name: "end_ts", type: "i64" },
61
- { name: "nonce", type: "u64" },
62
- { name: "created_at", type: "i64" },
63
- ],
64
- },
65
- },
66
- {
67
- name: "TokensClaimed",
68
- type: {
69
- kind: "struct",
70
- fields: [
71
- { name: "stream", type: "pubkey" },
72
- { name: "recipient", type: "pubkey" },
73
- { name: "mint", type: "pubkey" },
74
- { name: "claimable", type: "u64" },
75
- { name: "fee_lamports", type: "u64" },
76
- { name: "withdrawn_total", type: "u64" },
77
- { name: "timestamp", type: "i64" },
78
- ],
79
- },
80
- },
81
- ],
82
- events: [
83
- {
84
- name: "StreamCreated",
85
- discriminator: [93, 150, 91, 15, 166, 8, 251, 166],
86
- },
87
- {
88
- name: "TokensClaimed",
89
- discriminator: [25, 128, 244, 55, 241, 136, 200, 91],
90
- },
91
- ],
92
- errors: [],
93
- };
94
- const legacyCoder = new anchor.BorshCoder(legacyIdl);
95
- function decodeEvent(logStr) {
96
- const decoders = [decoder_1.coder.events, legacyCoder.events];
97
- for (const eventCoder of decoders) {
98
- try {
99
- const event = eventCoder.decode(logStr);
100
- if (event) {
101
- return event;
102
- }
103
- }
104
- catch {
105
- // Fall through to the next layout. Older transactions can emit
106
- // events that no longer match the current IDL exactly.
107
- }
108
- }
109
- return null;
110
- }
111
- const safeCoder = {
112
- events: {
113
- decode: decodeEvent,
114
- },
115
- };
116
- exports.eventParser = new anchor.EventParser(PROGRAM_ID, safeCoder);
117
- function parseEventsSafely(logs) {
118
- const events = [];
119
- try {
120
- for (const event of exports.eventParser.parseLogs(logs)) {
121
- events.push(event);
122
- }
123
- }
124
- catch (error) {
125
- const message = error instanceof Error ? error.message : String(error);
126
- console.warn("Skipping unparsable program logs:", message);
127
- }
128
- return events;
129
- }
130
- //# sourceMappingURL=eventParser.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"eventParser.js","sourceRoot":"","sources":["../../src/services/eventParser.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export declare function startIndexer(): Promise<void>;
2
- //# sourceMappingURL=streamIndexer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"streamIndexer.d.ts","sourceRoot":"","sources":["../../src/services/streamIndexer.ts"],"names":[],"mappings":"AAuBA,wBAAsB,YAAY,kBAwEjC"}
@@ -1,367 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.startIndexer = startIndexer;
7
- const dotenv_1 = __importDefault(require("dotenv"));
8
- const web3_js_1 = require("@solana/web3.js");
9
- const anchor_1 = require("@coral-xyz/anchor");
10
- const web3_js_2 = require("@solana/web3.js");
11
- const rpc_1 = require("./rpc");
12
- const prisma_1 = __importDefault(require("../db/prisma"));
13
- const eventParser_1 = require("./eventParser");
14
- const eventNormalizer_1 = require("./eventNormalizer");
15
- const unified_flow_json_1 = __importDefault(require("../idl/unified_flow.json"));
16
- dotenv_1.default.config();
17
- const PROGRAM_ID = new web3_js_1.PublicKey(process.env.PROGRAM_ID);
18
- const PROGRAM_IDL = unified_flow_json_1.default;
19
- async function startIndexer() {
20
- console.log("Starting indexer...");
21
- rpc_1.connection.onLogs(PROGRAM_ID, async (logInfo) => {
22
- try {
23
- console.log("TX:", logInfo.signature);
24
- // =========================
25
- // GET TX
26
- // =========================
27
- const tx = await rpc_1.connection.getTransaction(logInfo.signature, {
28
- commitment: "confirmed",
29
- maxSupportedTransactionVersion: 0,
30
- });
31
- if (!tx)
32
- return;
33
- const logs = tx.meta?.logMessages || [];
34
- // =========================
35
- // PARSE EVENTS
36
- // =========================
37
- const events = (0, eventParser_1.parseEventsSafely)(logs);
38
- console.log("EVENTS:", events);
39
- // =========================
40
- // HANDLE EVENTS
41
- // =========================
42
- for (const event of events) {
43
- console.log("EVENT:", event.name);
44
- if (event.name === "StreamCreated") {
45
- await handleStreamCreated(event.data, tx, logInfo.signature);
46
- }
47
- else if (event.name === "TokensClaimed") {
48
- await handleTokensClaimed(event.data, tx, logInfo.signature);
49
- }
50
- else if (event.name === "MilestoneUnlocked") {
51
- await handleMilestoneUnlocked(event.data, tx, logInfo.signature);
52
- }
53
- else if (event.name === "StreamCancelled") {
54
- await handleStreamCancelled(event.data, tx, logInfo.signature);
55
- }
56
- else if (event.name === "MilestoneEdited") {
57
- await handleMilestoneEdited(event.data, tx, logInfo.signature);
58
- }
59
- else if (event.name === "LinearEdited") {
60
- await handleLinearEdited(event.data, tx, logInfo.signature);
61
- }
62
- else if (event.name === "CliffEdited") {
63
- await handleCliffEdited(event.data, tx, logInfo.signature);
64
- }
65
- }
66
- }
67
- catch (err) {
68
- console.error("Error in indexing transaction log logs:", err);
69
- }
70
- }, "confirmed");
71
- }
72
- async function handleStreamCreated(event, tx, signature) {
73
- console.log("STREAM CREATED:", event);
74
- const normalized = (0, eventNormalizer_1.normalizeStreamCreated)(event);
75
- if (!normalized) {
76
- console.warn("Skipping StreamCreated event with missing fields:", event);
77
- return;
78
- }
79
- const streamId = normalized.stream;
80
- const milestoneCount = normalized.milestoneCount;
81
- // Fetch milestones FIRST before upsert to avoid empty milestones window
82
- let milestonesStr = "";
83
- if (milestoneCount > 0) {
84
- try {
85
- const provider = new anchor_1.AnchorProvider(rpc_1.connection, { publicKey: web3_js_2.Keypair.generate().publicKey, signTransaction: async () => { throw new Error("Read-only"); }, signAllTransactions: async () => { throw new Error("Read-only"); } }, { commitment: "confirmed" });
86
- const program = new anchor_1.Program(PROGRAM_IDL, provider);
87
- const amounts = [];
88
- for (let i = 0; i < milestoneCount; i++) {
89
- const [milestonePda] = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("milestone"), new web3_js_1.PublicKey(streamId).toBuffer(), Buffer.from([i])], PROGRAM_ID);
90
- const account = await program.account.milestoneAccount.fetch(milestonePda);
91
- amounts.push(account.amount.toString());
92
- }
93
- milestonesStr = amounts.join(";");
94
- console.log(`Fetched ${milestoneCount} milestones for stream ${streamId}`);
95
- }
96
- catch (error) {
97
- console.error(`Error fetching milestones for stream ${streamId}:`, error);
98
- }
99
- }
100
- await prisma_1.default.stream.upsert({
101
- where: { id: streamId },
102
- update: {
103
- // Only update milestones if we fetched them successfully
104
- // Never overwrite isCsvCreated — mark-origin may have already set it
105
- ...(milestonesStr ? { milestones: milestonesStr } : {}),
106
- },
107
- create: {
108
- id: streamId,
109
- creator: normalized.creator,
110
- recipient: normalized.recipient,
111
- mint: normalized.mint,
112
- vault: normalized.vault,
113
- totalAmount: normalized.totalAmount,
114
- withdrawn: BigInt(0),
115
- startTs: normalized.startTs,
116
- cliffTs: normalized.cliffTs,
117
- endTs: normalized.endTs,
118
- vestingType: normalized.vestingType,
119
- status: 1,
120
- cancelable: normalized.cancelable,
121
- milestoneCount: normalized.milestoneCount,
122
- milestones: milestonesStr,
123
- nonce: normalized.nonce,
124
- bump: 0,
125
- isCsvCreated: false, // default; mark-origin will update after frontend deploy
126
- }
127
- });
128
- await prisma_1.default.transaction.upsert({
129
- where: { signature },
130
- update: {},
131
- create: {
132
- id: signature,
133
- signature,
134
- slot: BigInt(tx.slot),
135
- streamId: streamId,
136
- type: "CREATE_STREAM",
137
- raw: JSON.parse(JSON.stringify(tx)),
138
- },
139
- });
140
- console.log("Indexed stream:", streamId);
141
- }
142
- async function handleTokensClaimed(event, tx, signature) {
143
- console.log("TOKENS CLAIMED:", event);
144
- const normalized = (0, eventNormalizer_1.normalizeTokensClaimed)(event);
145
- if (!normalized) {
146
- console.warn("Skipping TokensClaimed event with missing fields:", event);
147
- return;
148
- }
149
- const streamId = normalized.stream;
150
- const withdrawnTotal = normalized.withdrawnTotal;
151
- // Fetch stream totalAmount to check if it's completed
152
- const stream = await prisma_1.default.stream.findUnique({
153
- where: { id: streamId }
154
- });
155
- if (stream) {
156
- let newStatus = 1; // ACTIVE
157
- if (withdrawnTotal >= stream.totalAmount) {
158
- newStatus = 2; // COMPLETED
159
- }
160
- await prisma_1.default.stream.update({
161
- where: { id: streamId },
162
- data: {
163
- withdrawn: withdrawnTotal,
164
- status: newStatus
165
- }
166
- });
167
- }
168
- else {
169
- console.log(`Stream ${streamId} not found in database, skipping balance update.`);
170
- }
171
- await prisma_1.default.transaction.upsert({
172
- where: { signature },
173
- update: {},
174
- create: {
175
- id: signature,
176
- signature,
177
- slot: BigInt(tx.slot),
178
- streamId: stream ? streamId : null,
179
- type: "WITHDRAW",
180
- raw: JSON.parse(JSON.stringify(tx)),
181
- }
182
- });
183
- console.log(`Indexed withdrawal for stream ${streamId}: ${normalized.claimable.toString()} tokens`);
184
- }
185
- async function handleMilestoneUnlocked(event, tx, signature) {
186
- console.log("MILESTONE UNLOCKED:", event);
187
- const normalized = (0, eventNormalizer_1.normalizeMilestoneUnlocked)(event);
188
- if (!normalized) {
189
- console.warn("Skipping MilestoneUnlocked event with missing fields:", event);
190
- return;
191
- }
192
- const streamId = normalized.stream;
193
- const milestoneAmount = normalized.amount;
194
- const unlockTs = normalized.unlockTs;
195
- const completionTs = unlockTs ?? (tx.blockTime !== null && tx.blockTime !== undefined ? BigInt(tx.blockTime) : null);
196
- // Fetch stream to update its unlockedAmount
197
- const stream = await prisma_1.default.stream.findUnique({
198
- where: { id: streamId }
199
- });
200
- if (stream) {
201
- const currentUnlocked = stream.unlockedAmount || BigInt(0);
202
- const updatedUnlocked = currentUnlocked + milestoneAmount;
203
- const completed = updatedUnlocked >= stream.totalAmount;
204
- await prisma_1.default.stream.update({
205
- where: { id: streamId },
206
- data: {
207
- unlockedAmount: updatedUnlocked,
208
- status: completed ? 2 : stream.status,
209
- completedAt: completed && completionTs !== null ? completionTs : stream.completedAt,
210
- }
211
- });
212
- }
213
- else {
214
- console.log(`Stream ${streamId} not found in database during milestone unlock, skipping.`);
215
- }
216
- await prisma_1.default.transaction.upsert({
217
- where: { signature },
218
- update: {},
219
- create: {
220
- id: signature,
221
- signature,
222
- slot: BigInt(tx.slot),
223
- streamId: stream ? streamId : null,
224
- type: "MILESTONE_UNLOCKED",
225
- raw: JSON.parse(JSON.stringify(tx)),
226
- }
227
- });
228
- console.log(`Indexed milestone unlock for stream ${streamId}: unlocked ${milestoneAmount.toString()} tokens`);
229
- }
230
- async function handleStreamCancelled(event, tx, signature) {
231
- console.log("STREAM CANCELLED:", event);
232
- const normalized = (0, eventNormalizer_1.normalizeStreamCancelled)(event);
233
- if (!normalized) {
234
- console.warn("Skipping StreamCancelled event with missing fields:", event);
235
- return;
236
- }
237
- const streamId = normalized.stream;
238
- const stream = await prisma_1.default.stream.findUnique({
239
- where: { id: streamId }
240
- });
241
- if (stream) {
242
- const nextWithdrawn = stream.withdrawn + normalized.claimableForRecipient;
243
- await prisma_1.default.stream.update({
244
- where: { id: streamId },
245
- data: {
246
- withdrawn: nextWithdrawn,
247
- status: 3,
248
- }
249
- });
250
- }
251
- else {
252
- console.log(`Stream ${streamId} not found in database, skipping cancel update.`);
253
- }
254
- await prisma_1.default.transaction.upsert({
255
- where: { signature },
256
- update: {},
257
- create: {
258
- id: signature,
259
- signature,
260
- slot: BigInt(tx.slot),
261
- streamId: stream ? streamId : null,
262
- type: "CANCEL",
263
- raw: JSON.parse(JSON.stringify(tx)),
264
- }
265
- });
266
- console.log(`Indexed cancel for stream ${streamId}: vested ${normalized.vestedAmount.toString()} tokens`);
267
- }
268
- async function handleMilestoneEdited(event, tx, signature) {
269
- console.log("MILESTONE EDITED:", event);
270
- const normalized = (0, eventNormalizer_1.normalizeMilestoneEdited)(event);
271
- if (!normalized) {
272
- console.warn("Skipping MilestoneEdited event with missing fields:", event);
273
- return;
274
- }
275
- const streamId = normalized.stream;
276
- const stream = await prisma_1.default.stream.findUnique({ where: { id: streamId } });
277
- if (stream) {
278
- const diff = normalized.newAmount - normalized.oldAmount;
279
- const updatedTotal = stream.totalAmount + diff;
280
- let milestonesArr = stream.milestones ? stream.milestones.split(";") : [];
281
- while (milestonesArr.length <= normalized.index) {
282
- milestonesArr.push("0");
283
- }
284
- milestonesArr[normalized.index] = normalized.newAmount.toString();
285
- await prisma_1.default.stream.update({
286
- where: { id: streamId },
287
- data: {
288
- totalAmount: updatedTotal,
289
- milestones: milestonesArr.join(";"),
290
- }
291
- });
292
- }
293
- await prisma_1.default.transaction.upsert({
294
- where: { signature },
295
- update: {},
296
- create: {
297
- id: signature,
298
- signature,
299
- slot: BigInt(tx.slot),
300
- streamId: stream ? streamId : null,
301
- type: "MILESTONE_EDITED",
302
- raw: JSON.parse(JSON.stringify(tx)),
303
- }
304
- });
305
- }
306
- async function handleLinearEdited(event, tx, signature) {
307
- console.log("LINEAR EDITED:", event);
308
- const normalized = (0, eventNormalizer_1.normalizeLinearEdited)(event);
309
- if (!normalized) {
310
- console.warn("Skipping LinearEdited event with missing fields:", event);
311
- return;
312
- }
313
- const streamId = normalized.stream;
314
- const stream = await prisma_1.default.stream.findUnique({ where: { id: streamId } });
315
- if (stream) {
316
- await prisma_1.default.stream.update({
317
- where: { id: streamId },
318
- data: {
319
- endTs: normalized.newEndTs,
320
- totalAmount: normalized.newTotalAmount,
321
- }
322
- });
323
- }
324
- await prisma_1.default.transaction.upsert({
325
- where: { signature },
326
- update: {},
327
- create: {
328
- id: signature,
329
- signature,
330
- slot: BigInt(tx.slot),
331
- streamId: stream ? streamId : null,
332
- type: "LINEAR_EDITED",
333
- raw: JSON.parse(JSON.stringify(tx)),
334
- }
335
- });
336
- }
337
- async function handleCliffEdited(event, tx, signature) {
338
- console.log("CLIFF EDITED:", event);
339
- const normalized = (0, eventNormalizer_1.normalizeCliffEdited)(event);
340
- if (!normalized) {
341
- console.warn("Skipping CliffEdited event with missing fields:", event);
342
- return;
343
- }
344
- const streamId = normalized.stream;
345
- const stream = await prisma_1.default.stream.findUnique({ where: { id: streamId } });
346
- if (stream) {
347
- await prisma_1.default.stream.update({
348
- where: { id: streamId },
349
- data: {
350
- cliffTs: normalized.newCliffTs,
351
- }
352
- });
353
- }
354
- await prisma_1.default.transaction.upsert({
355
- where: { signature },
356
- update: {},
357
- create: {
358
- id: signature,
359
- signature,
360
- slot: BigInt(tx.slot),
361
- streamId: stream ? streamId : null,
362
- type: "CLIFF_EDITED",
363
- raw: JSON.parse(JSON.stringify(tx)),
364
- }
365
- });
366
- }
367
- //# sourceMappingURL=streamIndexer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"streamIndexer.js","sourceRoot":"","sources":["../../src/services/streamIndexer.ts"],"names":[],"mappings":"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"}