@fairmint/canton-fairmint-sdk 0.0.23 → 0.0.25

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/dist/clients/postgres-db-api/fairmint-db/app-markers.d.ts +26 -0
  2. package/dist/clients/postgres-db-api/fairmint-db/app-markers.d.ts.map +1 -0
  3. package/dist/clients/postgres-db-api/fairmint-db/app-markers.js +219 -0
  4. package/dist/clients/postgres-db-api/fairmint-db/app-markers.js.map +1 -0
  5. package/dist/clients/postgres-db-api/fairmint-db/base.d.ts +30 -0
  6. package/dist/clients/postgres-db-api/fairmint-db/base.d.ts.map +1 -0
  7. package/dist/clients/postgres-db-api/fairmint-db/base.js +208 -0
  8. package/dist/clients/postgres-db-api/fairmint-db/base.js.map +1 -0
  9. package/dist/clients/postgres-db-api/fairmint-db/index.d.ts +9 -0
  10. package/dist/clients/postgres-db-api/fairmint-db/index.d.ts.map +1 -0
  11. package/dist/clients/postgres-db-api/fairmint-db/index.js +21 -0
  12. package/dist/clients/postgres-db-api/fairmint-db/index.js.map +1 -0
  13. package/dist/clients/postgres-db-api/fairmint-db/ocf-deployments.d.ts +95 -0
  14. package/dist/clients/postgres-db-api/fairmint-db/ocf-deployments.d.ts.map +1 -0
  15. package/dist/clients/postgres-db-api/fairmint-db/ocf-deployments.js +592 -0
  16. package/dist/clients/postgres-db-api/fairmint-db/ocf-deployments.js.map +1 -0
  17. package/dist/clients/postgres-db-api/fairmint-db/parties.d.ts +22 -0
  18. package/dist/clients/postgres-db-api/fairmint-db/parties.d.ts.map +1 -0
  19. package/dist/clients/postgres-db-api/fairmint-db/parties.js +178 -0
  20. package/dist/clients/postgres-db-api/fairmint-db/parties.js.map +1 -0
  21. package/dist/clients/postgres-db-api/fairmint-db/reward-coupons.d.ts +41 -0
  22. package/dist/clients/postgres-db-api/fairmint-db/reward-coupons.d.ts.map +1 -0
  23. package/dist/clients/postgres-db-api/fairmint-db/reward-coupons.js +467 -0
  24. package/dist/clients/postgres-db-api/fairmint-db/reward-coupons.js.map +1 -0
  25. package/dist/clients/postgres-db-api/fairmint-db/time-series.d.ts +48 -0
  26. package/dist/clients/postgres-db-api/fairmint-db/time-series.d.ts.map +1 -0
  27. package/dist/clients/postgres-db-api/fairmint-db/time-series.js +419 -0
  28. package/dist/clients/postgres-db-api/fairmint-db/time-series.js.map +1 -0
  29. package/dist/clients/postgres-db-api/fairmint-db/transfers.d.ts +25 -0
  30. package/dist/clients/postgres-db-api/fairmint-db/transfers.d.ts.map +1 -0
  31. package/dist/clients/postgres-db-api/fairmint-db/transfers.js +206 -0
  32. package/dist/clients/postgres-db-api/fairmint-db/transfers.js.map +1 -0
  33. package/dist/clients/postgres-db-api/fairmint-db/valuation-reports.d.ts +11 -0
  34. package/dist/clients/postgres-db-api/fairmint-db/valuation-reports.d.ts.map +1 -0
  35. package/dist/clients/postgres-db-api/fairmint-db/valuation-reports.js +54 -0
  36. package/dist/clients/postgres-db-api/fairmint-db/valuation-reports.js.map +1 -0
  37. package/dist/clients/postgres-db-api/fairmintDbClient.d.ts +83 -132
  38. package/dist/clients/postgres-db-api/fairmintDbClient.d.ts.map +1 -1
  39. package/dist/clients/postgres-db-api/fairmintDbClient.js +183 -2973
  40. package/dist/clients/postgres-db-api/fairmintDbClient.js.map +1 -1
  41. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ocf-deployments.d.ts","sourceRoot":"","sources":["../../../../src/clients/postgres-db-api/fairmint-db/ocf-deployments.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,592 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OcfDeploymentsRepository = void 0;
4
+ const base_1 = require("./base");
5
+ /**
6
+ * Repository for OCF Deployment operations.
7
+ */
8
+ class OcfDeploymentsRepository extends base_1.BaseRepository {
9
+ mapOcfDeploymentFromDb(row) {
10
+ return {
11
+ id: row.id,
12
+ ocf_object_id: row.ocf_object_id,
13
+ version: row.version,
14
+ chain_id: row.chain_id,
15
+ status: row.status,
16
+ tx_hash: row.tx_hash,
17
+ contract_id: row.contract_id,
18
+ party_id: row.party_id,
19
+ wallet_address: row.wallet_address,
20
+ created_at: row.created_at,
21
+ updated_at: row.updated_at,
22
+ };
23
+ }
24
+ async insertOcfDeployment(deployment) {
25
+ const query = `
26
+ INSERT INTO ocf_deployments (
27
+ ocf_object_id, version, chain_id, status, tx_hash, contract_id, party_id, wallet_address
28
+ ) VALUES ($1, $2, $3, $4, $5, $6, $7, $8)
29
+ RETURNING id, ocf_object_id, version, chain_id, status, tx_hash, contract_id, party_id, wallet_address, created_at, updated_at
30
+ `;
31
+ const values = [
32
+ deployment.ocf_object_id,
33
+ deployment.version,
34
+ deployment.chain_id,
35
+ deployment.status,
36
+ deployment.tx_hash,
37
+ deployment.contract_id,
38
+ deployment.party_id,
39
+ deployment.wallet_address,
40
+ ];
41
+ const result = await this.pool.query(query, values);
42
+ return this.mapOcfDeploymentFromDb(result.rows[0]);
43
+ }
44
+ async getLatestOcfDeploymentByPartyId(partyId) {
45
+ const query = `
46
+ SELECT id, ocf_object_id, version, chain_id, status, tx_hash, contract_id, party_id, wallet_address, created_at, updated_at
47
+ FROM ocf_deployments
48
+ WHERE party_id = $1
49
+ ORDER BY version DESC
50
+ LIMIT 1
51
+ `;
52
+ const result = await this.pool.query(query, [partyId]);
53
+ if (result.rows.length === 0) {
54
+ return null;
55
+ }
56
+ return this.mapOcfDeploymentFromDb(result.rows[0]);
57
+ }
58
+ async getLatestOcfObjectByPortalId(portalId) {
59
+ const query = `
60
+ SELECT o.id as ocf_object_id, o.version
61
+ FROM latest_ocf_objects o
62
+ WHERE o.portal_id = $1
63
+ AND o.type = 'ISSUER'
64
+ ORDER BY o.version DESC
65
+ LIMIT 1
66
+ `;
67
+ const result = await this.pool.query(query, [portalId]);
68
+ if (result.rows.length === 0) {
69
+ return null;
70
+ }
71
+ const row = result.rows[0];
72
+ return {
73
+ ocf_object_id: row.ocf_object_id,
74
+ version: row.version,
75
+ };
76
+ }
77
+ async getOcfObjectDataByIdAndVersion(ocfObjectId, version) {
78
+ const query = `
79
+ SELECT type, subtype, ocf_data
80
+ FROM ocf_objects
81
+ WHERE id = $1 AND version = $2
82
+ LIMIT 1
83
+ `;
84
+ const result = await this.pool.query(query, [ocfObjectId, version]);
85
+ if (result.rows.length === 0)
86
+ return null;
87
+ const row = result.rows[0];
88
+ return {
89
+ type: row.type,
90
+ subtype: row.subtype ?? null,
91
+ ocf_data: row.ocf_data,
92
+ };
93
+ }
94
+ async listOcfDeployments(params) {
95
+ const conditions = [];
96
+ const values = [];
97
+ let idx = 1;
98
+ if (params?.chainId) {
99
+ conditions.push(`chain_id = $${idx++}`);
100
+ values.push(params.chainId);
101
+ }
102
+ if (params?.status) {
103
+ conditions.push(`status = $${idx++}`);
104
+ values.push(params.status);
105
+ }
106
+ if (params?.partyId) {
107
+ conditions.push(`party_id = $${idx++}`);
108
+ values.push(params.partyId);
109
+ }
110
+ const whereClause = conditions.length
111
+ ? `WHERE ${conditions.join(' AND ')}`
112
+ : '';
113
+ const limitClause = typeof params?.limit === 'number' ? `LIMIT ${params.limit}` : '';
114
+ const offsetClause = typeof params?.offset === 'number' ? `OFFSET ${params.offset}` : '';
115
+ const query = `
116
+ SELECT id, ocf_object_id, version, chain_id, status, tx_hash, contract_id, party_id, wallet_address, created_at, updated_at
117
+ FROM ocf_deployments
118
+ ${whereClause}
119
+ ORDER BY created_at DESC
120
+ ${limitClause}
121
+ ${offsetClause}
122
+ `;
123
+ const result = await this.pool.query(query, values);
124
+ return result.rows.map(row => this.mapOcfDeploymentFromDb(row));
125
+ }
126
+ async countLatestOcfObjects() {
127
+ const query = `SELECT COUNT(*) AS cnt FROM latest_ocf_objects`;
128
+ const result = await this.pool.query(query);
129
+ return Number(result.rows[0]?.cnt ?? 0);
130
+ }
131
+ async countLatestOcfObjectsForOnchainSync() {
132
+ const query = `
133
+ SELECT COUNT(*) AS cnt
134
+ FROM latest_ocf_objects o
135
+ JOIN portal p ON p.id = o.portal_id
136
+ WHERE p.enable_canton_rewards = true
137
+ `;
138
+ const result = await this.pool.query(query);
139
+ return Number(result.rows[0]?.cnt ?? 0);
140
+ }
141
+ async getLatestOcfObjectDataByPortalId(portalId) {
142
+ const query = `
143
+ SELECT o.id as ocf_object_id, o.version, o.ocf_data, o.type
144
+ FROM latest_ocf_objects o
145
+ WHERE o.portal_id = $1
146
+ AND o.type = 'ISSUER'
147
+ ORDER BY o.version DESC
148
+ LIMIT 1
149
+ `;
150
+ const result = await this.pool.query(query, [portalId]);
151
+ if (result.rows.length === 0) {
152
+ return null;
153
+ }
154
+ const row = result.rows[0];
155
+ return {
156
+ ocf_object_id: row.ocf_object_id,
157
+ version: row.version,
158
+ ocf_data: row.ocf_data,
159
+ type: row.type,
160
+ };
161
+ }
162
+ async getPartiesWithoutOcfObjects() {
163
+ const query = `
164
+ SELECT
165
+ cp.party_id,
166
+ cp.portal_id,
167
+ cp.provider,
168
+ p.company
169
+ FROM canton_parties cp
170
+ LEFT JOIN portal p ON cp.portal_id = p.id
171
+ WHERE NOT EXISTS (
172
+ SELECT 1 FROM latest_ocf_objects o
173
+ WHERE o.portal_id = cp.portal_id
174
+ AND o.type = 'ISSUER'
175
+ )
176
+ ORDER BY cp.created_at ASC
177
+ `;
178
+ const result = await this.pool.query(query);
179
+ return result.rows;
180
+ }
181
+ async getPartiesWithOcfObjectsButNoIssuerDeployments() {
182
+ const query = `
183
+ SELECT
184
+ cp.party_id,
185
+ cp.portal_id,
186
+ cp.provider,
187
+ p.company,
188
+ o.id as ocf_object_id,
189
+ o.version as ocf_version,
190
+ o.ocf_data,
191
+ o.type as ocf_type
192
+ FROM canton_parties cp
193
+ LEFT JOIN portal p ON cp.portal_id = p.id
194
+ INNER JOIN latest_ocf_objects o ON o.portal_id = cp.portal_id AND o.type = 'ISSUER'
195
+ WHERE NOT EXISTS (
196
+ SELECT 1 FROM ocf_deployments od
197
+ WHERE od.party_id = cp.party_id
198
+ AND od.ocf_object_id = o.id
199
+ )
200
+ ORDER BY cp.created_at ASC
201
+ `;
202
+ const result = await this.pool.query(query);
203
+ return result.rows;
204
+ }
205
+ async getPartiesWithOutdatedIssuerDeployments() {
206
+ const query = `
207
+ SELECT
208
+ cp.party_id,
209
+ cp.portal_id,
210
+ cp.provider,
211
+ p.company,
212
+ latest_ocf.version as latest_ocf_version,
213
+ latest_deployment.version as deployed_version,
214
+ latest_ocf.id as latest_ocf_object_id,
215
+ latest_deployment.contract_id as current_contract_id,
216
+ latest_ocf.ocf_data,
217
+ latest_ocf.type as ocf_type
218
+ FROM canton_parties cp
219
+ LEFT JOIN portal p ON cp.portal_id = p.id
220
+ INNER JOIN (
221
+ SELECT o.portal_id, o.id, o.version, o.ocf_data, o.type
222
+ FROM latest_ocf_objects o
223
+ WHERE o.type = 'ISSUER'
224
+ ) latest_ocf ON latest_ocf.portal_id = cp.portal_id
225
+ INNER JOIN (
226
+ SELECT od.party_id, od.ocf_object_id, od.version, od.contract_id,
227
+ ROW_NUMBER() OVER (PARTITION BY od.party_id ORDER BY od.version DESC) as rn
228
+ FROM ocf_deployments od
229
+ WHERE od.status = 'deployed'
230
+ ) latest_deployment ON latest_deployment.party_id = cp.party_id
231
+ AND latest_deployment.rn = 1
232
+ WHERE latest_ocf.version > latest_deployment.version
233
+ ORDER BY cp.created_at ASC
234
+ `;
235
+ const result = await this.pool.query(query);
236
+ return result.rows;
237
+ }
238
+ async getOnchainEquityValuations() {
239
+ const query = `
240
+ SELECT p.id AS portal_id,
241
+ p.id AS company_id,
242
+ p.company->>'name' AS company_name,
243
+ CASE
244
+ WHEN COALESCE((pp.company_data ->> 'company_custom_valuation')::numeric, 0) > COALESCE((pp.company_data ->> 'company_computed_valuation')::numeric, 0)
245
+ THEN COALESCE((pp.company_data ->> 'company_custom_valuation')::numeric, 0)
246
+ ELSE COALESCE((pp.company_data ->> 'company_computed_valuation')::numeric, 0)
247
+ END AS company_valuation
248
+ FROM portal p
249
+ JOIN portal_private pp ON pp.portal_id = p.id
250
+ WHERE (p.company ->> 'name') !~* 'Fairbnb'
251
+ AND (
252
+ p.captable_minted
253
+ OR (
254
+ p.domain !~* 'staging'
255
+ AND p.domain !~* 'websitecf'
256
+ AND p.domain !~* '.cafe'
257
+ )
258
+ )
259
+ ORDER BY p.captable_minted,
260
+ CASE
261
+ WHEN COALESCE((pp.company_data ->> 'company_custom_valuation')::numeric, 0) > COALESCE((pp.company_data ->> 'company_computed_valuation')::numeric, 0)
262
+ THEN COALESCE((pp.company_data ->> 'company_custom_valuation')::numeric, 0)
263
+ ELSE COALESCE((pp.company_data ->> 'company_computed_valuation')::numeric, 0)
264
+ END DESC
265
+ `;
266
+ const result = await this.pool.query(query);
267
+ return result.rows.map(row => ({
268
+ portal_id: row.portal_id,
269
+ company_id: row.company_id,
270
+ company_name: row.company_name ?? null,
271
+ company_valuation: Number(row.company_valuation ?? 0),
272
+ }));
273
+ }
274
+ // Generic helper for deployment queries
275
+ async getPortalsNeedingDeployments(ocfType, ocfSubtype) {
276
+ const typeCondition = ocfSubtype
277
+ ? `(loo.type = '${ocfType}' AND loo.subtype = '${ocfSubtype}')`
278
+ : `loo.type = '${ocfType}'`;
279
+ const query = `
280
+ SELECT DISTINCT
281
+ cp.portal_id,
282
+ cp.party_id,
283
+ cp.provider,
284
+ cp.created_at,
285
+ p.company,
286
+ loo.ocf_data,
287
+ loo.id AS ocf_object_id,
288
+ loo.version AS ocf_version,
289
+ (
290
+ SELECT od_issuer.contract_id
291
+ FROM ocf_deployments od_issuer
292
+ JOIN latest_ocf_objects loo_issuer ON od_issuer.ocf_object_id = loo_issuer.id
293
+ WHERE od_issuer.party_id = cp.party_id
294
+ AND od_issuer.status = 'deployed'
295
+ AND loo_issuer.type = 'ISSUER'
296
+ ORDER BY od_issuer.created_at DESC
297
+ LIMIT 1
298
+ ) as issuer_contract_id
299
+ FROM canton_parties cp
300
+ LEFT JOIN portal p ON cp.portal_id = p.id
301
+ JOIN latest_ocf_objects loo ON cp.portal_id = loo.portal_id
302
+ WHERE
303
+ ${typeCondition}
304
+ AND EXISTS (
305
+ SELECT 1 FROM ocf_deployments od_issuer
306
+ JOIN latest_ocf_objects loo_issuer ON od_issuer.ocf_object_id = loo_issuer.id
307
+ WHERE od_issuer.party_id = cp.party_id
308
+ AND od_issuer.status = 'deployed'
309
+ AND loo_issuer.type = 'ISSUER'
310
+ )
311
+ AND NOT EXISTS (
312
+ SELECT 1 FROM ocf_deployments od
313
+ WHERE od.ocf_object_id = loo.id
314
+ AND od.party_id = cp.party_id
315
+ AND od.status = 'deployed'
316
+ )
317
+ ORDER BY cp.created_at ASC
318
+ `;
319
+ const result = await this.pool.query(query);
320
+ return result.rows;
321
+ }
322
+ // Generic helper for update queries
323
+ async getPortalsNeedingUpdates(ocfType) {
324
+ const query = `
325
+ SELECT DISTINCT
326
+ cp.portal_id,
327
+ cp.party_id,
328
+ cp.provider,
329
+ cp.created_at,
330
+ p.company,
331
+ loo.ocf_data,
332
+ loo.id AS ocf_object_id,
333
+ loo.version as latest_ocf_version,
334
+ od.version as deployed_version,
335
+ od.contract_id as current_contract_id,
336
+ (loo.version - od.version) AS version_diff,
337
+ (
338
+ SELECT od_issuer.contract_id
339
+ FROM ocf_deployments od_issuer
340
+ JOIN latest_ocf_objects loo_issuer ON od_issuer.ocf_object_id = loo_issuer.id
341
+ WHERE od_issuer.party_id = cp.party_id
342
+ AND od_issuer.status = 'deployed'
343
+ AND loo_issuer.type = 'ISSUER'
344
+ ORDER BY od_issuer.created_at DESC
345
+ LIMIT 1
346
+ ) as issuer_contract_id
347
+ FROM canton_parties cp
348
+ LEFT JOIN portal p ON cp.portal_id = p.id
349
+ JOIN latest_ocf_objects loo ON cp.portal_id = loo.portal_id
350
+ JOIN ocf_deployments od ON loo.id = od.ocf_object_id AND cp.party_id = od.party_id
351
+ WHERE
352
+ loo.type = '${ocfType}'
353
+ AND EXISTS (
354
+ SELECT 1 FROM ocf_deployments od_issuer
355
+ JOIN latest_ocf_objects loo_issuer ON od_issuer.ocf_object_id = loo_issuer.id
356
+ WHERE od_issuer.party_id = cp.party_id
357
+ AND od_issuer.status = 'deployed'
358
+ AND loo_issuer.type = 'ISSUER'
359
+ )
360
+ AND od.version < loo.version
361
+ AND od.status = 'deployed'
362
+ ORDER BY version_diff DESC, cp.created_at ASC
363
+ `;
364
+ const result = await this.pool.query(query);
365
+ return result.rows;
366
+ }
367
+ async getPortalsNeedingStockClassDeployments() {
368
+ return this.getPortalsNeedingDeployments('STOCK_CLASS');
369
+ }
370
+ async getPortalsNeedingStockClassUpdates() {
371
+ return this.getPortalsNeedingUpdates('STOCK_CLASS');
372
+ }
373
+ async getPortalsNeedingStakeholderDeployments() {
374
+ return this.getPortalsNeedingDeployments('STAKEHOLDER');
375
+ }
376
+ async getPortalsNeedingStakeholderReDeployments() {
377
+ return this.getPortalsNeedingUpdates('STAKEHOLDER');
378
+ }
379
+ async getPortalsNeedingStockPlanDeployments() {
380
+ return this.getPortalsNeedingDeployments('STOCK_PLAN');
381
+ }
382
+ async getPortalsNeedingStockPlanReDeployments() {
383
+ return this.getPortalsNeedingUpdates('STOCK_PLAN');
384
+ }
385
+ async getPortalsNeedingStockLegendTemplateDeployments() {
386
+ return this.getPortalsNeedingDeployments('OBJECT', 'STOCK_LEGEND_TEMPLATE');
387
+ }
388
+ async getPortalsNeedingDocumentDeployments() {
389
+ return this.getPortalsNeedingDeployments('OBJECT', 'DOCUMENT');
390
+ }
391
+ async getPortalsNeedingVestingTermsDeployments() {
392
+ return this.getPortalsNeedingDeployments('OBJECT', 'VESTING_TERMS');
393
+ }
394
+ async getPortalsNeedingStockIssuanceDeployments() {
395
+ return this.getPortalsNeedingDeployments('TRANSACTION', 'TX_STOCK_ISSUANCE');
396
+ }
397
+ async getPortalsNeedingWarrantIssuanceDeployments() {
398
+ return this.getPortalsNeedingDeployments('TRANSACTION', 'TX_WARRANT_ISSUANCE');
399
+ }
400
+ async getPortalsNeedingStockPlanPoolAdjustmentDeployments() {
401
+ return this.getPortalsNeedingDeployments('TRANSACTION', 'TX_STOCK_PLAN_POOL_ADJUSTMENT');
402
+ }
403
+ async getPortalsNeedingStockClassAuthorizedSharesAdjustmentDeployments() {
404
+ return this.getPortalsNeedingDeployments('TRANSACTION', 'TX_STOCK_CLASS_AUTHORIZED_SHARES_ADJUSTMENT');
405
+ }
406
+ async getPortalsNeedingStockCancellationDeployments() {
407
+ return this.getPortalsNeedingDeployments('TRANSACTION', 'TX_STOCK_CANCELLATION');
408
+ }
409
+ async getPortalsNeedingIssuerAuthorizedSharesAdjustmentDeployments() {
410
+ return this.getPortalsNeedingDeployments('TRANSACTION', 'TX_ISSUER_AUTHORIZED_SHARES_ADJUSTMENT');
411
+ }
412
+ async getPortalsNeedingEquityCompensationIssuanceDeployments() {
413
+ return this.getPortalsNeedingDeployments('TRANSACTION', 'TX_EQUITY_COMPENSATION_ISSUANCE');
414
+ }
415
+ async getPortalsNeedingEquityCompensationExerciseDeployments() {
416
+ return this.getPortalsNeedingDeployments('TRANSACTION', 'TX_EQUITY_COMPENSATION_EXERCISE');
417
+ }
418
+ async getPortalsNeedingConvertibleIssuanceDeployments() {
419
+ return this.getPortalsNeedingDeployments('TRANSACTION', 'TX_CONVERTIBLE_ISSUANCE');
420
+ }
421
+ async getNextPartyIdWithPendingOcfWork() {
422
+ const query = `
423
+ WITH eligible_party AS (
424
+ SELECT DISTINCT cp.party_id, cp.created_at
425
+ FROM canton_parties cp
426
+ JOIN latest_ocf_objects loo ON cp.portal_id = loo.portal_id
427
+ WHERE
428
+ EXISTS (
429
+ SELECT 1 FROM ocf_deployments od_issuer
430
+ JOIN latest_ocf_objects loo_issuer ON od_issuer.ocf_object_id = loo_issuer.id
431
+ WHERE od_issuer.party_id = cp.party_id
432
+ AND od_issuer.status = 'deployed'
433
+ AND loo_issuer.type = 'ISSUER'
434
+ )
435
+ AND (
436
+ (loo.type <> 'ISSUER' AND NOT EXISTS (
437
+ SELECT 1 FROM ocf_deployments od
438
+ WHERE od.ocf_object_id = loo.id
439
+ AND od.party_id = cp.party_id
440
+ AND od.status = 'deployed'
441
+ ))
442
+ OR
443
+ (
444
+ loo.type <> 'ISSUER'
445
+ AND EXISTS (
446
+ SELECT 1 FROM ocf_deployments od2
447
+ WHERE od2.ocf_object_id = loo.id
448
+ AND od2.party_id = cp.party_id
449
+ AND od2.status = 'deployed'
450
+ AND od2.version < loo.version
451
+ )
452
+ )
453
+ )
454
+ )
455
+ SELECT party_id
456
+ FROM eligible_party
457
+ ORDER BY created_at ASC
458
+ LIMIT 1
459
+ `;
460
+ const result = await this.pool.query(query);
461
+ if (result.rows.length === 0)
462
+ return null;
463
+ return result.rows[0].party_id;
464
+ }
465
+ async getPendingOcfItemsForParty(partyId) {
466
+ const query = `
467
+ (
468
+ SELECT DISTINCT
469
+ cp.portal_id,
470
+ cp.party_id,
471
+ cp.provider,
472
+ p.company,
473
+ loo.id AS ocf_object_id,
474
+ loo.ocf_data,
475
+ loo.version AS ocf_version,
476
+ NULL::int AS latest_ocf_version,
477
+ NULL::int AS deployed_version,
478
+ NULL::text AS current_contract_id,
479
+ loo.type AS ocf_type,
480
+ loo.subtype AS ocf_subtype,
481
+ (
482
+ SELECT od_issuer.contract_id
483
+ FROM ocf_deployments od_issuer
484
+ JOIN latest_ocf_objects loo_issuer ON od_issuer.ocf_object_id = loo_issuer.id
485
+ WHERE od_issuer.party_id = cp.party_id
486
+ AND od_issuer.status = 'deployed'
487
+ AND loo_issuer.type = 'ISSUER'
488
+ ORDER BY od_issuer.created_at DESC
489
+ LIMIT 1
490
+ ) AS issuer_contract_id,
491
+ cp.created_at
492
+ FROM canton_parties cp
493
+ LEFT JOIN portal p ON cp.portal_id = p.id
494
+ JOIN latest_ocf_objects loo ON cp.portal_id = loo.portal_id
495
+ WHERE cp.party_id = $1
496
+ AND EXISTS (
497
+ SELECT 1 FROM ocf_deployments od_issuer
498
+ JOIN latest_ocf_objects loo_issuer ON od_issuer.ocf_object_id = loo_issuer.id
499
+ WHERE od_issuer.party_id = cp.party_id
500
+ AND od_issuer.status = 'deployed'
501
+ AND loo_issuer.type = 'ISSUER'
502
+ )
503
+ AND NOT EXISTS (
504
+ SELECT 1 FROM ocf_deployments od
505
+ WHERE od.ocf_object_id = loo.id
506
+ AND od.party_id = cp.party_id
507
+ AND od.status = 'deployed'
508
+ )
509
+ )
510
+ UNION ALL
511
+ (
512
+ SELECT DISTINCT
513
+ cp.portal_id,
514
+ cp.party_id,
515
+ cp.provider,
516
+ p.company,
517
+ loo.id AS ocf_object_id,
518
+ loo.ocf_data,
519
+ NULL::int AS ocf_version,
520
+ loo.version AS latest_ocf_version,
521
+ od.version AS deployed_version,
522
+ od.contract_id AS current_contract_id,
523
+ loo.type AS ocf_type,
524
+ loo.subtype AS ocf_subtype,
525
+ (
526
+ SELECT od_issuer.contract_id
527
+ FROM ocf_deployments od_issuer
528
+ JOIN latest_ocf_objects loo_issuer ON od_issuer.ocf_object_id = loo_issuer.id
529
+ WHERE od_issuer.party_id = cp.party_id
530
+ AND od_issuer.status = 'deployed'
531
+ AND loo_issuer.type = 'ISSUER'
532
+ ORDER BY od_issuer.created_at DESC
533
+ LIMIT 1
534
+ ) AS issuer_contract_id,
535
+ cp.created_at
536
+ FROM canton_parties cp
537
+ LEFT JOIN portal p ON cp.portal_id = p.id
538
+ JOIN latest_ocf_objects loo ON cp.portal_id = loo.portal_id
539
+ JOIN ocf_deployments od ON loo.id = od.ocf_object_id AND cp.party_id = od.party_id
540
+ WHERE cp.party_id = $1
541
+ AND loo.type <> 'ISSUER'
542
+ AND od.status = 'deployed'
543
+ AND od.version < loo.version
544
+ )
545
+ ORDER BY created_at ASC
546
+ `;
547
+ const result = await this.pool.query(query, [partyId]);
548
+ return result.rows;
549
+ }
550
+ // Cap Table Replication Methods
551
+ async getAllIssuersToReplicate() {
552
+ const query = `
553
+ SELECT DISTINCT
554
+ cp.party_id,
555
+ cp.portal_id,
556
+ p.company->>'name' as company
557
+ FROM canton_parties cp
558
+ LEFT JOIN portal p ON cp.portal_id = p.id
559
+ WHERE EXISTS (
560
+ SELECT 1 FROM latest_ocf_objects loo
561
+ WHERE loo.portal_id = cp.portal_id
562
+ AND loo.type = 'ISSUER'
563
+ )
564
+ ORDER BY cp.portal_id
565
+ `;
566
+ const result = await this.pool.query(query);
567
+ return result.rows;
568
+ }
569
+ /**
570
+ * @deprecated Use `getAllIssuersToReplicate` instead.
571
+ */
572
+ async getNextIssuerToReplicate() {
573
+ const issuers = await this.getAllIssuersToReplicate();
574
+ return issuers.length > 0 ? issuers[0] : null;
575
+ }
576
+ async getAllOcfObjectsForIssuer(portalId) {
577
+ const query = `
578
+ SELECT
579
+ loo.id as ocf_id,
580
+ loo.type,
581
+ loo.subtype,
582
+ loo.ocf_data as data
583
+ FROM latest_ocf_objects loo
584
+ WHERE loo.portal_id = $1
585
+ ORDER BY loo.type, loo.subtype, loo.id
586
+ `;
587
+ const result = await this.pool.query(query, [portalId]);
588
+ return result.rows;
589
+ }
590
+ }
591
+ exports.OcfDeploymentsRepository = OcfDeploymentsRepository;
592
+ //# sourceMappingURL=ocf-deployments.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ocf-deployments.js","sourceRoot":"","sources":["../../../../src/clients/postgres-db-api/fairmint-db/ocf-deployments.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import { BaseRepository } from './base';
2
+ import { type CantonParty } from '../types';
3
+ import { TransfersRepository } from './transfers';
4
+ /**
5
+ * Repository for Canton Party operations.
6
+ */
7
+ export declare class PartiesRepository extends BaseRepository {
8
+ private readonly transfersRepo;
9
+ constructor(pool: import('pg').Pool, config: import('../../shared/config').ProviderConfig, network: string, transfersRepo: TransfersRepository);
10
+ insertCantonParty(party: CantonParty): Promise<CantonParty>;
11
+ getCantonParty(id: number): Promise<CantonParty | null>;
12
+ getCantonPartyByPartyId(partyId: string): Promise<CantonParty | null>;
13
+ updateCantonParty(id: number, updates: Partial<CantonParty>): Promise<CantonParty | null>;
14
+ updateCantonPartyByPartyId(partyId: string, updates: Partial<CantonParty>): Promise<CantonParty | null>;
15
+ getActiveCustomersWithExpiredPayment(): Promise<CantonParty[]>;
16
+ getAllParties(provider?: '5n' | 'intellect' | '5n-broker'): Promise<CantonParty[]>;
17
+ getPortalsNeedingCantonParties(): Promise<Array<{
18
+ portal_id: string;
19
+ company: unknown;
20
+ }>>;
21
+ }
22
+ //# sourceMappingURL=parties.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parties.d.ts","sourceRoot":"","sources":["../../../../src/clients/postgres-db-api/fairmint-db/parties.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAElD;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,cAAc;IACnD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAsB;gBAGlD,IAAI,EAAE,OAAO,IAAI,EAAE,IAAI,EACvB,MAAM,EAAE,OAAO,qBAAqB,EAAE,cAAc,EACpD,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,mBAAmB;IAM9B,iBAAiB,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IAoB3D,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAavD,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAarE,iBAAiB,CACrB,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,GAC5B,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAiCxB,0BAA0B,CAC9B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,GAC5B,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAiCxB,oCAAoC,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IAe9D,aAAa,CACjB,QAAQ,CAAC,EAAE,IAAI,GAAG,WAAW,GAAG,WAAW,GAC1C,OAAO,CAAC,WAAW,EAAE,CAAC;IA2CnB,8BAA8B,IAAI,OAAO,CAC7C,KAAK,CAAC;QACJ,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,OAAO,CAAC;KAClB,CAAC,CACH;CAkBF"}