@fairmint/canton-fairmint-sdk 0.0.22 → 0.0.24

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 +26 -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 +190 -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 +91 -127
  38. package/dist/clients/postgres-db-api/fairmintDbClient.d.ts.map +1 -1
  39. package/dist/clients/postgres-db-api/fairmintDbClient.js +183 -2969
  40. package/dist/clients/postgres-db-api/fairmintDbClient.js.map +1 -1
  41. package/package.json +1 -1
@@ -0,0 +1,26 @@
1
+ import { BaseRepository } from './base';
2
+ import { type AppMarkerStatus, type CantonAppMarker } from '../types';
3
+ /**
4
+ * Repository for Canton App Marker operations.
5
+ */
6
+ export declare class AppMarkersRepository extends BaseRepository {
7
+ insertCantonAppMarker(marker: CantonAppMarker): Promise<CantonAppMarker>;
8
+ batchInsertCantonAppMarkers(markers: CantonAppMarker[]): Promise<{
9
+ insertedCount: number;
10
+ skippedCount: number;
11
+ }>;
12
+ upsertCantonAppMarkerAsArchived(marker: CantonAppMarker): Promise<CantonAppMarker>;
13
+ getCantonAppMarker(id: number): Promise<CantonAppMarker | null>;
14
+ getCantonAppMarkerByContractId(contractId: string): Promise<CantonAppMarker | null>;
15
+ getCantonAppMarkersByContractIds(contractIds: string[]): Promise<CantonAppMarker[]>;
16
+ batchUpdateCantonAppMarkersByContractIds(contractIds: string[], updates: Partial<CantonAppMarker>): Promise<CantonAppMarker[]>;
17
+ getCantonAppMarkersByStatus(status: AppMarkerStatus, limit?: number, sortOrder?: 'ASC' | 'DESC'): Promise<CantonAppMarker[]>;
18
+ getLatestCantonAppMarkers(limit?: number, beneficiaryPartyId?: string): Promise<CantonAppMarker[]>;
19
+ getOldestUnarchivedCantonAppMarkers(limit?: number, beneficiaryPartyId?: string): Promise<CantonAppMarker[]>;
20
+ updateCantonAppMarker(id: number, updates: Partial<CantonAppMarker>): Promise<CantonAppMarker | null>;
21
+ getUniqueMarkerBeneficiaryParties(): Promise<Array<{
22
+ party_id: string;
23
+ marker_count: number;
24
+ }>>;
25
+ }
26
+ //# sourceMappingURL=app-markers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-markers.d.ts","sourceRoot":"","sources":["../../../../src/clients/postgres-db-api/fairmint-db/app-markers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,eAAe,EAAE,MAAM,UAAU,CAAC;AAEtE;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,cAAc;IAChD,qBAAqB,CACzB,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,eAAe,CAAC;IAqBrB,2BAA2B,CAC/B,OAAO,EAAE,eAAe,EAAE,GACzB,OAAO,CAAC;QAAE,aAAa,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC;IAsCrD,+BAA+B,CACnC,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,eAAe,CAAC;IAuBrB,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;IAQ/D,8BAA8B,CAClC,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;IAQ5B,gCAAgC,CACpC,WAAW,EAAE,MAAM,EAAE,GACpB,OAAO,CAAC,eAAe,EAAE,CAAC;IAgBvB,wCAAwC,CAC5C,WAAW,EAAE,MAAM,EAAE,EACrB,OAAO,EAAE,OAAO,CAAC,eAAe,CAAC,GAChC,OAAO,CAAC,eAAe,EAAE,CAAC;IAuCvB,2BAA2B,CAC/B,MAAM,EAAE,eAAe,EACvB,KAAK,SAAM,EACX,SAAS,GAAE,KAAK,GAAG,MAAc,GAChC,OAAO,CAAC,eAAe,EAAE,CAAC;IAWvB,yBAAyB,CAC7B,KAAK,SAAI,EACT,kBAAkB,CAAC,EAAE,MAAM,GAC1B,OAAO,CAAC,eAAe,EAAE,CAAC;IAkBvB,mCAAmC,CACvC,KAAK,SAAI,EACT,kBAAkB,CAAC,EAAE,MAAM,GAC1B,OAAO,CAAC,eAAe,EAAE,CAAC;IAmBvB,qBAAqB,CACzB,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,OAAO,CAAC,eAAe,CAAC,GAChC,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;IAgC5B,iCAAiC,IAAI,OAAO,CAChD,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC,CAClD;CAgBF"}
@@ -0,0 +1,219 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AppMarkersRepository = void 0;
4
+ const base_1 = require("./base");
5
+ /**
6
+ * Repository for Canton App Marker operations.
7
+ */
8
+ class AppMarkersRepository extends base_1.BaseRepository {
9
+ async insertCantonAppMarker(marker) {
10
+ const query = `
11
+ INSERT INTO canton_app_markers (
12
+ status, contract_id, provider_party_id, beneficiary_party_id, tx_record_time, weight
13
+ ) VALUES ($1, $2, $3, $4, $5, $6)
14
+ RETURNING *
15
+ `;
16
+ const values = [
17
+ marker.status,
18
+ marker.contract_id,
19
+ marker.provider_party_id,
20
+ marker.beneficiary_party_id,
21
+ marker.tx_record_time,
22
+ marker.weight,
23
+ ];
24
+ const result = await this.pool.query(query, values);
25
+ return this.mapAppMarkerFromDb(result.rows[0]);
26
+ }
27
+ async batchInsertCantonAppMarkers(markers) {
28
+ if (markers.length === 0) {
29
+ return { insertedCount: 0, skippedCount: 0 };
30
+ }
31
+ // Build the VALUES clause with placeholders
32
+ const valuesPlaceholders = markers
33
+ .map((_, idx) => `($${idx * 6 + 1}, $${idx * 6 + 2}, $${idx * 6 + 3}, $${idx * 6 + 4}, $${idx * 6 + 5}, $${idx * 6 + 6})`)
34
+ .join(', ');
35
+ const query = `
36
+ INSERT INTO canton_app_markers (
37
+ status, contract_id, provider_party_id, beneficiary_party_id, tx_record_time, weight
38
+ ) VALUES ${valuesPlaceholders}
39
+ ON CONFLICT (contract_id) DO NOTHING
40
+ RETURNING *
41
+ `;
42
+ // Flatten all marker values into a single array
43
+ const values = markers.flatMap(marker => [
44
+ marker.status,
45
+ marker.contract_id,
46
+ marker.provider_party_id,
47
+ marker.beneficiary_party_id,
48
+ marker.tx_record_time,
49
+ marker.weight,
50
+ ]);
51
+ const result = await this.pool.query(query, values);
52
+ const insertedCount = result.rowCount ?? 0;
53
+ const skippedCount = markers.length - insertedCount;
54
+ return { insertedCount, skippedCount };
55
+ }
56
+ async upsertCantonAppMarkerAsArchived(marker) {
57
+ const query = `
58
+ INSERT INTO canton_app_markers (
59
+ status, contract_id, provider_party_id, beneficiary_party_id, tx_record_time, weight
60
+ ) VALUES ($1, $2, $3, $4, $5, $6)
61
+ ON CONFLICT (contract_id) DO UPDATE
62
+ SET status = EXCLUDED.status, updated_at = NOW()
63
+ RETURNING *
64
+ `;
65
+ const values = [
66
+ marker.status,
67
+ marker.contract_id,
68
+ marker.provider_party_id,
69
+ marker.beneficiary_party_id,
70
+ marker.tx_record_time,
71
+ marker.weight,
72
+ ];
73
+ const result = await this.pool.query(query, values);
74
+ return this.mapAppMarkerFromDb(result.rows[0]);
75
+ }
76
+ async getCantonAppMarker(id) {
77
+ const query = 'SELECT * FROM canton_app_markers WHERE id = $1';
78
+ const result = await this.pool.query(query, [id]);
79
+ return result.rows.length > 0
80
+ ? this.mapAppMarkerFromDb(result.rows[0])
81
+ : null;
82
+ }
83
+ async getCantonAppMarkerByContractId(contractId) {
84
+ const query = 'SELECT * FROM canton_app_markers WHERE contract_id = $1';
85
+ const result = await this.pool.query(query, [contractId]);
86
+ return result.rows.length > 0
87
+ ? this.mapAppMarkerFromDb(result.rows[0])
88
+ : null;
89
+ }
90
+ async getCantonAppMarkersByContractIds(contractIds) {
91
+ if (contractIds.length === 0) {
92
+ return [];
93
+ }
94
+ const placeholders = contractIds
95
+ .map((_, index) => `$${index + 1}`)
96
+ .join(', ');
97
+ const query = `
98
+ SELECT * FROM canton_app_markers
99
+ WHERE contract_id IN (${placeholders})
100
+ `;
101
+ const result = await this.pool.query(query, contractIds);
102
+ return result.rows.map(row => this.mapAppMarkerFromDb(row));
103
+ }
104
+ async batchUpdateCantonAppMarkersByContractIds(contractIds, updates) {
105
+ if (contractIds.length === 0) {
106
+ return [];
107
+ }
108
+ const setClauses = [];
109
+ const values = [];
110
+ let paramIndex = 1;
111
+ // Build dynamic update query
112
+ Object.entries(updates).forEach(([key, value]) => {
113
+ if (key !== 'id' && key !== 'created_at') {
114
+ setClauses.push(`${this.toSnakeCase(key)} = $${paramIndex}`);
115
+ values.push(value);
116
+ paramIndex++;
117
+ }
118
+ });
119
+ if (setClauses.length === 0) {
120
+ throw new Error('No valid fields to update');
121
+ }
122
+ // Build the WHERE clause for contract IDs
123
+ const contractIdPlaceholders = contractIds
124
+ .map((_, index) => `$${paramIndex + index}`)
125
+ .join(', ');
126
+ values.push(...contractIds);
127
+ const query = `
128
+ UPDATE canton_app_markers
129
+ SET ${setClauses.join(', ')}, updated_at = NOW()
130
+ WHERE contract_id IN (${contractIdPlaceholders})
131
+ RETURNING *
132
+ `;
133
+ const result = await this.pool.query(query, values);
134
+ return result.rows.map(row => this.mapAppMarkerFromDb(row));
135
+ }
136
+ async getCantonAppMarkersByStatus(status, limit = 100, sortOrder = 'ASC') {
137
+ const query = `
138
+ SELECT * FROM canton_app_markers
139
+ WHERE status = $1
140
+ ORDER BY tx_record_time ${sortOrder}
141
+ LIMIT $2
142
+ `;
143
+ const result = await this.pool.query(query, [status, limit]);
144
+ return result.rows.map(row => this.mapAppMarkerFromDb(row));
145
+ }
146
+ async getLatestCantonAppMarkers(limit = 3, beneficiaryPartyId) {
147
+ let query = `
148
+ SELECT * FROM canton_app_markers
149
+ `;
150
+ const params = [];
151
+ if (beneficiaryPartyId) {
152
+ query += ` WHERE beneficiary_party_id = $1`;
153
+ params.push(beneficiaryPartyId);
154
+ }
155
+ query += ` ORDER BY tx_record_time DESC LIMIT $${params.length + 1}`;
156
+ params.push(limit);
157
+ const result = await this.pool.query(query, params);
158
+ return result.rows.map(row => this.mapAppMarkerFromDb(row));
159
+ }
160
+ async getOldestUnarchivedCantonAppMarkers(limit = 3, beneficiaryPartyId) {
161
+ let query = `
162
+ SELECT * FROM canton_app_markers
163
+ WHERE status = 'created'
164
+ `;
165
+ const params = [];
166
+ if (beneficiaryPartyId) {
167
+ query += ` AND beneficiary_party_id = $${params.length + 1}`;
168
+ params.push(beneficiaryPartyId);
169
+ }
170
+ query += ` ORDER BY tx_record_time ASC LIMIT $${params.length + 1}`;
171
+ params.push(limit);
172
+ const result = await this.pool.query(query, params);
173
+ return result.rows.map(row => this.mapAppMarkerFromDb(row));
174
+ }
175
+ async updateCantonAppMarker(id, updates) {
176
+ const setClauses = [];
177
+ const values = [];
178
+ let paramIndex = 1;
179
+ // Build dynamic update query
180
+ Object.entries(updates).forEach(([key, value]) => {
181
+ if (key !== 'id' && key !== 'created_at') {
182
+ setClauses.push(`${this.toSnakeCase(key)} = $${paramIndex}`);
183
+ values.push(value);
184
+ paramIndex++;
185
+ }
186
+ });
187
+ if (setClauses.length === 0) {
188
+ throw new Error('No valid fields to update');
189
+ }
190
+ values.push(id);
191
+ const query = `
192
+ UPDATE canton_app_markers
193
+ SET ${setClauses.join(', ')}, updated_at = NOW()
194
+ WHERE id = $${paramIndex}
195
+ RETURNING *
196
+ `;
197
+ const result = await this.pool.query(query, values);
198
+ return result.rows.length > 0
199
+ ? this.mapAppMarkerFromDb(result.rows[0])
200
+ : null;
201
+ }
202
+ async getUniqueMarkerBeneficiaryParties() {
203
+ const query = `
204
+ SELECT
205
+ beneficiary_party_id as party_id,
206
+ COUNT(*) as marker_count
207
+ FROM canton_app_markers
208
+ GROUP BY beneficiary_party_id
209
+ ORDER BY marker_count DESC
210
+ `;
211
+ const result = await this.pool.query(query);
212
+ return result.rows.map(row => ({
213
+ party_id: row.party_id,
214
+ marker_count: parseInt(row.marker_count, 10),
215
+ }));
216
+ }
217
+ }
218
+ exports.AppMarkersRepository = AppMarkersRepository;
219
+ //# sourceMappingURL=app-markers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-markers.js","sourceRoot":"","sources":["../../../../src/clients/postgres-db-api/fairmint-db/app-markers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import { Pool, type PoolClient } from 'pg';
2
+ import { ProviderConfig } from '../../shared/config';
3
+ import { type CantonAppMarker, type CantonAppRewardCoupon, type CantonAppRewardCouponRedemption, type CantonParty, type CantonTransfer, type CantonValuationReport, type RewardCouponWithTransfer } from '../types';
4
+ /**
5
+ * Base repository class with shared database pool and helper methods.
6
+ * All domain-specific repositories extend this class.
7
+ */
8
+ export declare class BaseRepository {
9
+ protected readonly pool: Pool;
10
+ protected readonly config: ProviderConfig;
11
+ protected readonly network: string;
12
+ constructor(pool: Pool, config: ProviderConfig, network: string);
13
+ protected toSnakeCase(str: string): string;
14
+ protected mapTransferFromDb(row: any): CantonTransfer;
15
+ protected mapRewardCouponFromDb(row: any): CantonAppRewardCoupon;
16
+ protected mapAppMarkerFromDb(row: any): CantonAppMarker;
17
+ protected mapRedemptionFromDb(row: any): CantonAppRewardCouponRedemption;
18
+ protected mapRewardCouponWithTransferFromDb(row: any): RewardCouponWithTransfer;
19
+ protected mapPartyFromDb(row: any): CantonParty;
20
+ protected mapValuationReportFromDb(row: any): CantonValuationReport;
21
+ }
22
+ /**
23
+ * Factory to create a pool and config for the FairmintDb client
24
+ */
25
+ export declare function createFairmintDbPool(network: string): {
26
+ pool: Pool;
27
+ config: ProviderConfig;
28
+ };
29
+ export { Pool, type PoolClient };
30
+ //# sourceMappingURL=base.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../src/clients/postgres-db-api/fairmint-db/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,UAAU,EAAE,MAAM,IAAI,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,qBAAqB,EAC1B,KAAK,+BAA+B,EACpC,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,qBAAqB,EAC1B,KAAK,wBAAwB,EAC9B,MAAM,UAAU,CAAC;AAElB;;;GAGG;AACH,qBAAa,cAAc;IACzB,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IAC9B,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAC1C,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;gBAEvB,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM;IAM/D,SAAS,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAI1C,SAAS,CAAC,iBAAiB,CAAC,GAAG,EAAE,GAAG,GAAG,cAAc;IAqBrD,SAAS,CAAC,qBAAqB,CAAC,GAAG,EAAE,GAAG,GAAG,qBAAqB;IAyBhE,SAAS,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAG,GAAG,eAAe;IAcvD,SAAS,CAAC,mBAAmB,CAAC,GAAG,EAAE,GAAG,GAAG,+BAA+B;IAexE,SAAS,CAAC,iCAAiC,CACzC,GAAG,EAAE,GAAG,GACP,wBAAwB;IAqE3B,SAAS,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,GAAG,WAAW;IAmB/C,SAAS,CAAC,wBAAwB,CAAC,GAAG,EAAE,GAAG,GAAG,qBAAqB;CAcpE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG;IACrD,IAAI,EAAE,IAAI,CAAC;IACX,MAAM,EAAE,cAAc,CAAC;CACxB,CAqBA;AAED,OAAO,EAAE,IAAI,EAAE,KAAK,UAAU,EAAE,CAAC"}
@@ -0,0 +1,208 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Pool = exports.BaseRepository = void 0;
4
+ exports.createFairmintDbPool = createFairmintDbPool;
5
+ const pg_1 = require("pg");
6
+ Object.defineProperty(exports, "Pool", { enumerable: true, get: function () { return pg_1.Pool; } });
7
+ const config_1 = require("../../shared/config");
8
+ /**
9
+ * Base repository class with shared database pool and helper methods.
10
+ * All domain-specific repositories extend this class.
11
+ */
12
+ class BaseRepository {
13
+ constructor(pool, config, network) {
14
+ this.pool = pool;
15
+ this.config = config;
16
+ this.network = network;
17
+ }
18
+ toSnakeCase(str) {
19
+ return str.replace(/[A-Z]/g, letter => `_${letter.toLowerCase()}`);
20
+ }
21
+ mapTransferFromDb(row) {
22
+ return {
23
+ id: row.id,
24
+ api_tracking_id: row.api_tracking_id,
25
+ api_expires_at: row.api_expires_at,
26
+ transfer_sender_party_id: row.transfer_sender_party_id,
27
+ transfer_receiver_party_id: row.transfer_receiver_party_id,
28
+ transfer_amount: parseFloat(row.transfer_amount),
29
+ transfer_description: row.transfer_description,
30
+ transfer_burned_amount: parseFloat(row.transfer_burned_amount),
31
+ receiver_holding_cids: row.receiver_holding_cids,
32
+ sender_change_cids: row.sender_change_cids,
33
+ tx_update_id: row.tx_update_id,
34
+ tx_record_time: row.tx_record_time,
35
+ status: row.status,
36
+ app_reward_coupon_id: row.app_reward_coupon_id,
37
+ created_at: row.created_at,
38
+ updated_at: row.updated_at,
39
+ };
40
+ }
41
+ mapRewardCouponFromDb(row) {
42
+ return {
43
+ id: row.id,
44
+ status: row.status,
45
+ tx_update_id: row.tx_update_id,
46
+ tx_record_time: row.tx_record_time,
47
+ contract_id: row.contract_id,
48
+ template_id: row.template_id,
49
+ package_name: row.package_name,
50
+ dso_party_id: row.dso_party_id,
51
+ provider_party_id: row.provider_party_id,
52
+ featured: row.featured,
53
+ round_number: row.round_number,
54
+ beneficiary_party_id: row.beneficiary_party_id,
55
+ coupon_amount: parseFloat(row.coupon_amount),
56
+ tx_archive_update_id: row.tx_archive_update_id,
57
+ tx_archive_record_time: row.tx_archive_record_time,
58
+ app_reward_amount: row.app_reward_amount
59
+ ? parseFloat(row.app_reward_amount)
60
+ : null,
61
+ created_at: row.created_at,
62
+ updated_at: row.updated_at,
63
+ };
64
+ }
65
+ mapAppMarkerFromDb(row) {
66
+ return {
67
+ id: row.id,
68
+ status: row.status,
69
+ contract_id: row.contract_id,
70
+ provider_party_id: row.provider_party_id,
71
+ beneficiary_party_id: row.beneficiary_party_id,
72
+ tx_record_time: row.tx_record_time,
73
+ weight: parseFloat(row.weight),
74
+ created_at: row.created_at,
75
+ updated_at: row.updated_at,
76
+ };
77
+ }
78
+ mapRedemptionFromDb(row) {
79
+ return {
80
+ id: row.id,
81
+ transfer_id: row.transfer_id,
82
+ app_reward_coupon_ids: row.app_reward_coupon_ids,
83
+ tx_update_id: row.tx_update_id,
84
+ tx_record_time: row.tx_record_time,
85
+ tx_synchronizer_id: row.tx_synchronizer_id,
86
+ tx_effective_at: row.tx_effective_at,
87
+ total_app_rewards: parseFloat(row.total_app_rewards),
88
+ created_at: row.created_at,
89
+ updated_at: row.updated_at,
90
+ };
91
+ }
92
+ mapRewardCouponWithTransferFromDb(row) {
93
+ const coupon = {
94
+ id: row.coupon_id,
95
+ status: row.coupon_status,
96
+ tx_update_id: row.coupon_tx_update_id,
97
+ tx_record_time: row.coupon_tx_record_time,
98
+ contract_id: row.coupon_contract_id,
99
+ template_id: row.coupon_template_id,
100
+ package_name: row.coupon_package_name,
101
+ dso_party_id: row.coupon_dso_party_id,
102
+ provider_party_id: row.coupon_provider_party_id,
103
+ featured: row.coupon_featured,
104
+ round_number: row.coupon_round_number,
105
+ beneficiary_party_id: row.coupon_beneficiary_party_id,
106
+ coupon_amount: parseFloat(row.coupon_coupon_amount),
107
+ tx_archive_update_id: row.coupon_tx_archive_update_id,
108
+ tx_archive_record_time: row.coupon_tx_archive_record_time,
109
+ app_reward_amount: row.coupon_app_reward_amount
110
+ ? parseFloat(row.coupon_app_reward_amount)
111
+ : null,
112
+ created_at: row.coupon_created_at,
113
+ updated_at: row.coupon_updated_at,
114
+ };
115
+ const transfer = row.transfer_id
116
+ ? {
117
+ id: row.transfer_id,
118
+ api_tracking_id: row.transfer_api_tracking_id,
119
+ api_expires_at: row.transfer_api_expires_at,
120
+ transfer_sender_party_id: row.transfer_transfer_sender_party_id,
121
+ transfer_receiver_party_id: row.transfer_transfer_receiver_party_id,
122
+ transfer_amount: parseFloat(row.transfer_transfer_amount),
123
+ transfer_description: row.transfer_transfer_description,
124
+ transfer_burned_amount: parseFloat(row.transfer_transfer_burned_amount),
125
+ receiver_holding_cids: row.transfer_receiver_holding_cids,
126
+ sender_change_cids: row.transfer_sender_change_cids,
127
+ tx_update_id: row.transfer_tx_update_id,
128
+ tx_record_time: row.transfer_tx_record_time,
129
+ status: row.transfer_status,
130
+ app_reward_coupon_id: row.transfer_app_reward_coupon_id,
131
+ created_at: row.transfer_created_at,
132
+ updated_at: row.transfer_updated_at,
133
+ }
134
+ : undefined;
135
+ const redemption = row.redemption_id
136
+ ? {
137
+ id: row.redemption_id,
138
+ transfer_id: row.transfer_id,
139
+ app_reward_coupon_ids: [], // This would need to be fetched separately if needed
140
+ tx_update_id: row.redemption_tx_update_id,
141
+ tx_record_time: row.redemption_tx_record_time,
142
+ tx_synchronizer_id: row.redemption_tx_synchronizer_id,
143
+ tx_effective_at: row.redemption_tx_effective_at,
144
+ total_app_rewards: parseFloat(row.total_app_rewards),
145
+ created_at: row.redemption_created_at,
146
+ updated_at: row.redemption_updated_at,
147
+ }
148
+ : null;
149
+ return {
150
+ ...coupon,
151
+ transfer,
152
+ redemption,
153
+ };
154
+ }
155
+ mapPartyFromDb(row) {
156
+ return {
157
+ id: row.id,
158
+ party_id: row.party_id,
159
+ portal_id: row.portal_id,
160
+ provider: row.provider,
161
+ last_payment_until: row.last_payment_until,
162
+ is_active_customer_since: row.is_active_customer_since,
163
+ created_at: row.created_at,
164
+ updated_at: row.updated_at,
165
+ portal: row.company
166
+ ? {
167
+ id: row.portal_id,
168
+ company: row.company,
169
+ }
170
+ : null,
171
+ };
172
+ }
173
+ mapValuationReportFromDb(row) {
174
+ return {
175
+ id: row.id,
176
+ portal_id: row.portal_id,
177
+ company_id: row.company_id,
178
+ version: row.version,
179
+ contract_id: row.contract_id,
180
+ company_valuation: Number(row.company_valuation),
181
+ tx_update_id: row.tx_update_id,
182
+ last_valuation_until: row.last_valuation_until,
183
+ created_at: row.created_at,
184
+ updated_at: row.updated_at,
185
+ };
186
+ }
187
+ }
188
+ exports.BaseRepository = BaseRepository;
189
+ /**
190
+ * Factory to create a pool and config for the FairmintDb client
191
+ */
192
+ function createFairmintDbPool(network) {
193
+ const config = new config_1.ProviderConfig();
194
+ const databaseUrl = config.getDatabaseUrl(network);
195
+ if (!databaseUrl) {
196
+ throw new Error(`Fairmint database URL for ${network} is not configured. Please set POSTGRES_DB_URL_${network.toUpperCase()} environment variable.`);
197
+ }
198
+ const pool = new pg_1.Pool({
199
+ connectionString: databaseUrl,
200
+ ssl: { rejectUnauthorized: false },
201
+ });
202
+ pool.on('error', err => {
203
+ console.error('Unexpected error on idle client', err);
204
+ process.exit(-1);
205
+ });
206
+ return { pool, config };
207
+ }
208
+ //# sourceMappingURL=base.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../../src/clients/postgres-db-api/fairmint-db/base.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ export { BaseRepository, createFairmintDbPool } from './base';
2
+ export { TransfersRepository } from './transfers';
3
+ export { RewardCouponsRepository } from './reward-coupons';
4
+ export { AppMarkersRepository } from './app-markers';
5
+ export { PartiesRepository } from './parties';
6
+ export { OcfDeploymentsRepository } from './ocf-deployments';
7
+ export { TimeSeriesRepository } from './time-series';
8
+ export { ValuationReportsRepository } from './valuation-reports';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/clients/postgres-db-api/fairmint-db/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ValuationReportsRepository = exports.TimeSeriesRepository = exports.OcfDeploymentsRepository = exports.PartiesRepository = exports.AppMarkersRepository = exports.RewardCouponsRepository = exports.TransfersRepository = exports.createFairmintDbPool = exports.BaseRepository = void 0;
4
+ var base_1 = require("./base");
5
+ Object.defineProperty(exports, "BaseRepository", { enumerable: true, get: function () { return base_1.BaseRepository; } });
6
+ Object.defineProperty(exports, "createFairmintDbPool", { enumerable: true, get: function () { return base_1.createFairmintDbPool; } });
7
+ var transfers_1 = require("./transfers");
8
+ Object.defineProperty(exports, "TransfersRepository", { enumerable: true, get: function () { return transfers_1.TransfersRepository; } });
9
+ var reward_coupons_1 = require("./reward-coupons");
10
+ Object.defineProperty(exports, "RewardCouponsRepository", { enumerable: true, get: function () { return reward_coupons_1.RewardCouponsRepository; } });
11
+ var app_markers_1 = require("./app-markers");
12
+ Object.defineProperty(exports, "AppMarkersRepository", { enumerable: true, get: function () { return app_markers_1.AppMarkersRepository; } });
13
+ var parties_1 = require("./parties");
14
+ Object.defineProperty(exports, "PartiesRepository", { enumerable: true, get: function () { return parties_1.PartiesRepository; } });
15
+ var ocf_deployments_1 = require("./ocf-deployments");
16
+ Object.defineProperty(exports, "OcfDeploymentsRepository", { enumerable: true, get: function () { return ocf_deployments_1.OcfDeploymentsRepository; } });
17
+ var time_series_1 = require("./time-series");
18
+ Object.defineProperty(exports, "TimeSeriesRepository", { enumerable: true, get: function () { return time_series_1.TimeSeriesRepository; } });
19
+ var valuation_reports_1 = require("./valuation-reports");
20
+ Object.defineProperty(exports, "ValuationReportsRepository", { enumerable: true, get: function () { return valuation_reports_1.ValuationReportsRepository; } });
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/clients/postgres-db-api/fairmint-db/index.ts"],"names":[],"mappings":";;;AAAA,+BAA8D;AAArD,sGAAA,cAAc,OAAA;AAAE,4GAAA,oBAAoB,OAAA;AAC7C,yCAAkD;AAAzC,gHAAA,mBAAmB,OAAA;AAC5B,mDAA2D;AAAlD,yHAAA,uBAAuB,OAAA;AAChC,6CAAqD;AAA5C,mHAAA,oBAAoB,OAAA;AAC7B,qCAA8C;AAArC,4GAAA,iBAAiB,OAAA;AAC1B,qDAA6D;AAApD,2HAAA,wBAAwB,OAAA;AACjC,6CAAqD;AAA5C,mHAAA,oBAAoB,OAAA;AAC7B,yDAAiE;AAAxD,+HAAA,0BAA0B,OAAA"}
@@ -0,0 +1,95 @@
1
+ import { BaseRepository } from './base';
2
+ import { type CreateOcfDeployment, type OcfDeployment, type OnchainEquityRow, type StakeholderNeedingDeploymentRow, type StakeholderNeedingUpdateRow, type StockClassNeedingDeploymentRow, type StockClassNeedingUpdateRow, type StockPlanNeedingDeploymentRow, type StockPlanNeedingUpdateRow } from '../types';
3
+ /**
4
+ * Repository for OCF Deployment operations.
5
+ */
6
+ export declare class OcfDeploymentsRepository extends BaseRepository {
7
+ private mapOcfDeploymentFromDb;
8
+ insertOcfDeployment(deployment: CreateOcfDeployment): Promise<OcfDeployment>;
9
+ getLatestOcfDeploymentByPartyId(partyId: string): Promise<OcfDeployment | null>;
10
+ getLatestOcfObjectByPortalId(portalId: string): Promise<{
11
+ ocf_object_id: string;
12
+ version: number;
13
+ } | null>;
14
+ getOcfObjectDataByIdAndVersion(ocfObjectId: string, version: number): Promise<{
15
+ type: string;
16
+ subtype: string | null;
17
+ ocf_data: any;
18
+ } | null>;
19
+ listOcfDeployments(params?: {
20
+ chainId?: string;
21
+ status?: string;
22
+ partyId?: string;
23
+ limit?: number;
24
+ offset?: number;
25
+ }): Promise<OcfDeployment[]>;
26
+ countLatestOcfObjects(): Promise<number>;
27
+ countLatestOcfObjectsForOnchainSync(): Promise<number>;
28
+ getLatestOcfObjectDataByPortalId(portalId: string): Promise<{
29
+ ocf_object_id: string;
30
+ version: number;
31
+ ocf_data: any;
32
+ type: string;
33
+ } | null>;
34
+ getPartiesWithoutOcfObjects(): Promise<any[]>;
35
+ getPartiesWithOcfObjectsButNoIssuerDeployments(): Promise<any[]>;
36
+ getPartiesWithOutdatedIssuerDeployments(): Promise<any[]>;
37
+ getOnchainEquityValuations(): Promise<OnchainEquityRow[]>;
38
+ private getPortalsNeedingDeployments;
39
+ private getPortalsNeedingUpdates;
40
+ getPortalsNeedingStockClassDeployments(): Promise<StockClassNeedingDeploymentRow[]>;
41
+ getPortalsNeedingStockClassUpdates(): Promise<StockClassNeedingUpdateRow[]>;
42
+ getPortalsNeedingStakeholderDeployments(): Promise<StakeholderNeedingDeploymentRow[]>;
43
+ getPortalsNeedingStakeholderReDeployments(): Promise<StakeholderNeedingUpdateRow[]>;
44
+ getPortalsNeedingStockPlanDeployments(): Promise<StockPlanNeedingDeploymentRow[]>;
45
+ getPortalsNeedingStockPlanReDeployments(): Promise<StockPlanNeedingUpdateRow[]>;
46
+ getPortalsNeedingStockLegendTemplateDeployments(): Promise<any[]>;
47
+ getPortalsNeedingDocumentDeployments(): Promise<any[]>;
48
+ getPortalsNeedingVestingTermsDeployments(): Promise<any[]>;
49
+ getPortalsNeedingStockIssuanceDeployments(): Promise<any[]>;
50
+ getPortalsNeedingWarrantIssuanceDeployments(): Promise<any[]>;
51
+ getPortalsNeedingStockPlanPoolAdjustmentDeployments(): Promise<any[]>;
52
+ getPortalsNeedingStockClassAuthorizedSharesAdjustmentDeployments(): Promise<any[]>;
53
+ getPortalsNeedingStockCancellationDeployments(): Promise<any[]>;
54
+ getPortalsNeedingIssuerAuthorizedSharesAdjustmentDeployments(): Promise<any[]>;
55
+ getPortalsNeedingEquityCompensationIssuanceDeployments(): Promise<any[]>;
56
+ getPortalsNeedingEquityCompensationExerciseDeployments(): Promise<any[]>;
57
+ getPortalsNeedingConvertibleIssuanceDeployments(): Promise<any[]>;
58
+ getNextPartyIdWithPendingOcfWork(): Promise<string | null>;
59
+ getPendingOcfItemsForParty(partyId: string): Promise<Array<{
60
+ portal_id: string;
61
+ party_id: string;
62
+ provider: string;
63
+ company: string | null;
64
+ ocf_object_id: string;
65
+ ocf_data: any;
66
+ ocf_version: number | null;
67
+ latest_ocf_version: number | null;
68
+ deployed_version: number | null;
69
+ current_contract_id: string | null;
70
+ ocf_type: string;
71
+ ocf_subtype: string | null;
72
+ issuer_contract_id: string | null;
73
+ created_at: string;
74
+ }>>;
75
+ getAllIssuersToReplicate(): Promise<Array<{
76
+ party_id: string;
77
+ portal_id: string;
78
+ company: string | null;
79
+ }>>;
80
+ /**
81
+ * @deprecated Use `getAllIssuersToReplicate` instead.
82
+ */
83
+ getNextIssuerToReplicate(): Promise<{
84
+ party_id: string;
85
+ portal_id: string;
86
+ company: string | null;
87
+ } | null>;
88
+ getAllOcfObjectsForIssuer(portalId: string): Promise<Array<{
89
+ ocf_id: string;
90
+ type: string;
91
+ subtype: string | null;
92
+ data: unknown;
93
+ }>>;
94
+ }
95
+ //# sourceMappingURL=ocf-deployments.d.ts.map