@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.
- package/dist/clients/postgres-db-api/fairmint-db/app-markers.d.ts +26 -0
- package/dist/clients/postgres-db-api/fairmint-db/app-markers.d.ts.map +1 -0
- package/dist/clients/postgres-db-api/fairmint-db/app-markers.js +219 -0
- package/dist/clients/postgres-db-api/fairmint-db/app-markers.js.map +1 -0
- package/dist/clients/postgres-db-api/fairmint-db/base.d.ts +30 -0
- package/dist/clients/postgres-db-api/fairmint-db/base.d.ts.map +1 -0
- package/dist/clients/postgres-db-api/fairmint-db/base.js +208 -0
- package/dist/clients/postgres-db-api/fairmint-db/base.js.map +1 -0
- package/dist/clients/postgres-db-api/fairmint-db/index.d.ts +9 -0
- package/dist/clients/postgres-db-api/fairmint-db/index.d.ts.map +1 -0
- package/dist/clients/postgres-db-api/fairmint-db/index.js +21 -0
- package/dist/clients/postgres-db-api/fairmint-db/index.js.map +1 -0
- package/dist/clients/postgres-db-api/fairmint-db/ocf-deployments.d.ts +95 -0
- package/dist/clients/postgres-db-api/fairmint-db/ocf-deployments.d.ts.map +1 -0
- package/dist/clients/postgres-db-api/fairmint-db/ocf-deployments.js +592 -0
- package/dist/clients/postgres-db-api/fairmint-db/ocf-deployments.js.map +1 -0
- package/dist/clients/postgres-db-api/fairmint-db/parties.d.ts +22 -0
- package/dist/clients/postgres-db-api/fairmint-db/parties.d.ts.map +1 -0
- package/dist/clients/postgres-db-api/fairmint-db/parties.js +178 -0
- package/dist/clients/postgres-db-api/fairmint-db/parties.js.map +1 -0
- package/dist/clients/postgres-db-api/fairmint-db/reward-coupons.d.ts +41 -0
- package/dist/clients/postgres-db-api/fairmint-db/reward-coupons.d.ts.map +1 -0
- package/dist/clients/postgres-db-api/fairmint-db/reward-coupons.js +467 -0
- package/dist/clients/postgres-db-api/fairmint-db/reward-coupons.js.map +1 -0
- package/dist/clients/postgres-db-api/fairmint-db/time-series.d.ts +48 -0
- package/dist/clients/postgres-db-api/fairmint-db/time-series.d.ts.map +1 -0
- package/dist/clients/postgres-db-api/fairmint-db/time-series.js +419 -0
- package/dist/clients/postgres-db-api/fairmint-db/time-series.js.map +1 -0
- package/dist/clients/postgres-db-api/fairmint-db/transfers.d.ts +25 -0
- package/dist/clients/postgres-db-api/fairmint-db/transfers.d.ts.map +1 -0
- package/dist/clients/postgres-db-api/fairmint-db/transfers.js +206 -0
- package/dist/clients/postgres-db-api/fairmint-db/transfers.js.map +1 -0
- package/dist/clients/postgres-db-api/fairmint-db/valuation-reports.d.ts +11 -0
- package/dist/clients/postgres-db-api/fairmint-db/valuation-reports.d.ts.map +1 -0
- package/dist/clients/postgres-db-api/fairmint-db/valuation-reports.js +54 -0
- package/dist/clients/postgres-db-api/fairmint-db/valuation-reports.js.map +1 -0
- package/dist/clients/postgres-db-api/fairmintDbClient.d.ts +83 -132
- package/dist/clients/postgres-db-api/fairmintDbClient.d.ts.map +1 -1
- package/dist/clients/postgres-db-api/fairmintDbClient.js +183 -2973
- package/dist/clients/postgres-db-api/fairmintDbClient.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PartiesRepository = void 0;
|
|
4
|
+
const base_1 = require("./base");
|
|
5
|
+
/**
|
|
6
|
+
* Repository for Canton Party operations.
|
|
7
|
+
*/
|
|
8
|
+
class PartiesRepository extends base_1.BaseRepository {
|
|
9
|
+
constructor(pool, config, network, transfersRepo) {
|
|
10
|
+
super(pool, config, network);
|
|
11
|
+
this.transfersRepo = transfersRepo;
|
|
12
|
+
}
|
|
13
|
+
async insertCantonParty(party) {
|
|
14
|
+
const query = `
|
|
15
|
+
INSERT INTO canton_parties (
|
|
16
|
+
party_id, portal_id, provider, last_payment_until, is_active_customer_since
|
|
17
|
+
) VALUES ($1, $2, $3, $4, $5)
|
|
18
|
+
RETURNING *
|
|
19
|
+
`;
|
|
20
|
+
const values = [
|
|
21
|
+
party.party_id,
|
|
22
|
+
party.portal_id,
|
|
23
|
+
party.provider,
|
|
24
|
+
party.last_payment_until,
|
|
25
|
+
party.is_active_customer_since,
|
|
26
|
+
];
|
|
27
|
+
const result = await this.pool.query(query, values);
|
|
28
|
+
return this.mapPartyFromDb(result.rows[0]);
|
|
29
|
+
}
|
|
30
|
+
async getCantonParty(id) {
|
|
31
|
+
const query = `
|
|
32
|
+
SELECT
|
|
33
|
+
cp.*,
|
|
34
|
+
p.company
|
|
35
|
+
FROM canton_parties cp
|
|
36
|
+
LEFT JOIN portal p ON cp.portal_id = p.id
|
|
37
|
+
WHERE cp.id = $1
|
|
38
|
+
`;
|
|
39
|
+
const result = await this.pool.query(query, [id]);
|
|
40
|
+
return result.rows.length > 0 ? this.mapPartyFromDb(result.rows[0]) : null;
|
|
41
|
+
}
|
|
42
|
+
async getCantonPartyByPartyId(partyId) {
|
|
43
|
+
const query = `
|
|
44
|
+
SELECT
|
|
45
|
+
cp.*,
|
|
46
|
+
p.company
|
|
47
|
+
FROM canton_parties cp
|
|
48
|
+
LEFT JOIN portal p ON cp.portal_id = p.id
|
|
49
|
+
WHERE cp.party_id = $1
|
|
50
|
+
`;
|
|
51
|
+
const result = await this.pool.query(query, [partyId]);
|
|
52
|
+
return result.rows.length > 0 ? this.mapPartyFromDb(result.rows[0]) : null;
|
|
53
|
+
}
|
|
54
|
+
async updateCantonParty(id, updates) {
|
|
55
|
+
const setClauses = [];
|
|
56
|
+
const values = [];
|
|
57
|
+
let paramIndex = 1;
|
|
58
|
+
// Build dynamic update query - exclude amulets field
|
|
59
|
+
Object.entries(updates).forEach(([key, value]) => {
|
|
60
|
+
if (key !== 'id' && key !== 'created_at' && key !== 'amulets') {
|
|
61
|
+
setClauses.push(`${this.toSnakeCase(key)} = $${paramIndex}`);
|
|
62
|
+
values.push(value);
|
|
63
|
+
paramIndex++;
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
if (setClauses.length === 0) {
|
|
67
|
+
throw new Error('No valid fields to update');
|
|
68
|
+
}
|
|
69
|
+
values.push(id);
|
|
70
|
+
const query = `
|
|
71
|
+
UPDATE canton_parties
|
|
72
|
+
SET ${setClauses.join(', ')}, updated_at = NOW()
|
|
73
|
+
WHERE id = $${paramIndex}
|
|
74
|
+
RETURNING id
|
|
75
|
+
`;
|
|
76
|
+
const result = await this.pool.query(query, values);
|
|
77
|
+
if (result.rows.length > 0) {
|
|
78
|
+
return this.getCantonParty(id);
|
|
79
|
+
}
|
|
80
|
+
return null;
|
|
81
|
+
}
|
|
82
|
+
async updateCantonPartyByPartyId(partyId, updates) {
|
|
83
|
+
const setClauses = [];
|
|
84
|
+
const values = [];
|
|
85
|
+
let paramIndex = 1;
|
|
86
|
+
// Build dynamic update query - exclude amulets field
|
|
87
|
+
Object.entries(updates).forEach(([key, value]) => {
|
|
88
|
+
if (key !== 'id' && key !== 'created_at' && key !== 'amulets') {
|
|
89
|
+
setClauses.push(`${this.toSnakeCase(key)} = $${paramIndex}`);
|
|
90
|
+
values.push(value);
|
|
91
|
+
paramIndex++;
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
if (setClauses.length === 0) {
|
|
95
|
+
throw new Error('No valid fields to update');
|
|
96
|
+
}
|
|
97
|
+
values.push(partyId);
|
|
98
|
+
const query = `
|
|
99
|
+
UPDATE canton_parties
|
|
100
|
+
SET ${setClauses.join(', ')}, updated_at = NOW()
|
|
101
|
+
WHERE party_id = $${paramIndex}
|
|
102
|
+
RETURNING party_id
|
|
103
|
+
`;
|
|
104
|
+
const result = await this.pool.query(query, values);
|
|
105
|
+
if (result.rows.length > 0) {
|
|
106
|
+
return this.getCantonPartyByPartyId(partyId);
|
|
107
|
+
}
|
|
108
|
+
return null;
|
|
109
|
+
}
|
|
110
|
+
async getActiveCustomersWithExpiredPayment() {
|
|
111
|
+
const query = `
|
|
112
|
+
SELECT
|
|
113
|
+
cp.*,
|
|
114
|
+
p.company
|
|
115
|
+
FROM canton_parties cp
|
|
116
|
+
LEFT JOIN portal p ON cp.portal_id = p.id
|
|
117
|
+
WHERE cp.is_active_customer_since IS NOT NULL
|
|
118
|
+
AND (cp.last_payment_until IS NULL OR cp.last_payment_until < NOW())
|
|
119
|
+
ORDER BY cp.last_payment_until ASC NULLS FIRST
|
|
120
|
+
`;
|
|
121
|
+
const result = await this.pool.query(query);
|
|
122
|
+
return result.rows.map(row => this.mapPartyFromDb(row));
|
|
123
|
+
}
|
|
124
|
+
async getAllParties(provider) {
|
|
125
|
+
let query = `
|
|
126
|
+
SELECT
|
|
127
|
+
cp.*,
|
|
128
|
+
p.company
|
|
129
|
+
FROM canton_parties cp
|
|
130
|
+
INNER JOIN portal p ON cp.portal_id = p.id
|
|
131
|
+
`;
|
|
132
|
+
const values = [];
|
|
133
|
+
if (provider) {
|
|
134
|
+
// Handle 5n-broker case since database enum doesn't support it yet
|
|
135
|
+
if (provider === '5n-broker') {
|
|
136
|
+
// For now, return empty array since 5n-broker parties aren't in the database yet
|
|
137
|
+
return [];
|
|
138
|
+
}
|
|
139
|
+
query += ` WHERE cp.provider = $1`;
|
|
140
|
+
values.push(provider);
|
|
141
|
+
}
|
|
142
|
+
query += ` ORDER BY cp.created_at ASC`;
|
|
143
|
+
const result = await this.pool.query(query, values);
|
|
144
|
+
const parties = result.rows.map(row => this.mapPartyFromDb(row));
|
|
145
|
+
// Get payment statistics for all parties
|
|
146
|
+
const partyIds = parties.map(party => party.party_id);
|
|
147
|
+
const paymentStats = await this.transfersRepo.getLifetimePaymentStatisticsForParties(partyIds);
|
|
148
|
+
// Merge payment statistics with party data
|
|
149
|
+
return parties.map(party => {
|
|
150
|
+
const stats = paymentStats.get(party.party_id);
|
|
151
|
+
return {
|
|
152
|
+
...party,
|
|
153
|
+
payment_count: stats?.paymentCount ?? 0,
|
|
154
|
+
total_value_sent: stats?.totalValueSent ?? 0,
|
|
155
|
+
total_fees_paid: stats?.totalFeesPaid ?? 0,
|
|
156
|
+
};
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
async getPortalsNeedingCantonParties() {
|
|
160
|
+
const query = `
|
|
161
|
+
SELECT DISTINCT
|
|
162
|
+
p.id as portal_id,
|
|
163
|
+
p.company
|
|
164
|
+
FROM portal p
|
|
165
|
+
JOIN latest_ocf_objects loo ON p.id = loo.portal_id
|
|
166
|
+
WHERE loo.type = 'ISSUER'
|
|
167
|
+
AND NOT EXISTS (
|
|
168
|
+
SELECT 1 FROM canton_parties cp
|
|
169
|
+
WHERE cp.portal_id = p.id
|
|
170
|
+
)
|
|
171
|
+
ORDER BY p.id
|
|
172
|
+
`;
|
|
173
|
+
const result = await this.pool.query(query);
|
|
174
|
+
return result.rows;
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
exports.PartiesRepository = PartiesRepository;
|
|
178
|
+
//# sourceMappingURL=parties.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parties.js","sourceRoot":"","sources":["../../../../src/clients/postgres-db-api/fairmint-db/parties.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { BaseRepository } from './base';
|
|
2
|
+
import { type AppRewardCouponStatus, type CantonAppRewardCoupon, type GetRewardCouponOptions, type GetRewardCouponsOptions, type RewardCouponWithTransfer } from '../types';
|
|
3
|
+
/**
|
|
4
|
+
* Repository for Canton App Reward Coupon operations.
|
|
5
|
+
*/
|
|
6
|
+
export declare class RewardCouponsRepository extends BaseRepository {
|
|
7
|
+
insertCantonAppRewardCoupon(coupon: CantonAppRewardCoupon): Promise<CantonAppRewardCoupon>;
|
|
8
|
+
batchInsertCantonAppRewardCoupons(coupons: CantonAppRewardCoupon[]): Promise<{
|
|
9
|
+
insertedCount: number;
|
|
10
|
+
skippedCount: number;
|
|
11
|
+
}>;
|
|
12
|
+
upsertCantonAppRewardCouponWithStatus(coupon: CantonAppRewardCoupon): Promise<CantonAppRewardCoupon>;
|
|
13
|
+
getCantonAppRewardCoupon(id: number): Promise<CantonAppRewardCoupon | null>;
|
|
14
|
+
getCantonAppRewardCouponByContractId(contractId: string): Promise<CantonAppRewardCoupon | null>;
|
|
15
|
+
getCantonAppRewardCouponsByContractIds(contractIds: string[]): Promise<CantonAppRewardCoupon[]>;
|
|
16
|
+
getCantonAppRewardCouponsByStatus(status: AppRewardCouponStatus, limit?: number, sortOrder?: 'ASC' | 'DESC', beneficiaryPartyId?: string): Promise<CantonAppRewardCoupon[]>;
|
|
17
|
+
countCantonAppRewardCouponsByStatus(status: AppRewardCouponStatus): Promise<number>;
|
|
18
|
+
getOldestCreatedCantonAppRewardCoupons(limit?: number): Promise<CantonAppRewardCoupon[]>;
|
|
19
|
+
getCantonAppRewardCouponsByDateRange(startDate: Date, endDate: Date, status?: AppRewardCouponStatus, limit?: number, sortOrder?: 'ASC' | 'DESC'): Promise<CantonAppRewardCoupon[]>;
|
|
20
|
+
updateCantonAppRewardCoupon(id: number, updates: Partial<CantonAppRewardCoupon>): Promise<CantonAppRewardCoupon | null>;
|
|
21
|
+
batchUpdateCantonAppRewardCouponsByContractIds(contractIds: string[], updates: Partial<CantonAppRewardCoupon>): Promise<CantonAppRewardCoupon[]>;
|
|
22
|
+
getRewardCoupons(options?: GetRewardCouponsOptions): Promise<RewardCouponWithTransfer[]>;
|
|
23
|
+
getRewardCoupon(options: GetRewardCouponOptions): Promise<RewardCouponWithTransfer | null>;
|
|
24
|
+
getMonthlyAppRewardAmountTotal(monthStart: Date, monthEnd: Date): Promise<number>;
|
|
25
|
+
getLatestCouponAmounts(): Promise<{
|
|
26
|
+
featuredAmount: number;
|
|
27
|
+
unfeaturedAmount: number;
|
|
28
|
+
}>;
|
|
29
|
+
getLastAppRewardCouponTimestamp(partyFilter?: string): Promise<Date | null>;
|
|
30
|
+
getLifetimeAppRewards(): Promise<number>;
|
|
31
|
+
getUniqueCouponBeneficiaryParties(): Promise<Array<{
|
|
32
|
+
party_id: string;
|
|
33
|
+
coupon_count: number;
|
|
34
|
+
}>>;
|
|
35
|
+
getHistoricalIssuanceRates(roundNumbers: number[]): Promise<Array<{
|
|
36
|
+
roundNumber: number;
|
|
37
|
+
issuancePerFeaturedAppRewardCoupon: number;
|
|
38
|
+
issuancePerUnfeaturedAppRewardCoupon: number;
|
|
39
|
+
}>>;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=reward-coupons.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reward-coupons.d.ts","sourceRoot":"","sources":["../../../../src/clients/postgres-db-api/fairmint-db/reward-coupons.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EACL,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAC5B,KAAK,wBAAwB,EAC9B,MAAM,UAAU,CAAC;AAElB;;GAEG;AACH,qBAAa,uBAAwB,SAAQ,cAAc;IACnD,2BAA2B,CAC/B,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,qBAAqB,CAAC;IA4B3B,iCAAiC,CACrC,OAAO,EAAE,qBAAqB,EAAE,GAC/B,OAAO,CAAC;QAAE,aAAa,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC;IA6CrD,qCAAqC,CACzC,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,qBAAqB,CAAC;IA8B3B,wBAAwB,CAC5B,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC;IAQlC,oCAAoC,CACxC,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC;IASlC,sCAAsC,CAC1C,WAAW,EAAE,MAAM,EAAE,GACpB,OAAO,CAAC,qBAAqB,EAAE,CAAC;IAiB7B,iCAAiC,CACrC,MAAM,EAAE,qBAAqB,EAC7B,KAAK,SAAM,EACX,SAAS,GAAE,KAAK,GAAG,MAAc,EACjC,kBAAkB,CAAC,EAAE,MAAM,GAC1B,OAAO,CAAC,qBAAqB,EAAE,CAAC;IAmB7B,mCAAmC,CACvC,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,MAAM,CAAC;IASZ,sCAAsC,CAC1C,KAAK,SAAM,GACV,OAAO,CAAC,qBAAqB,EAAE,CAAC;IAW7B,oCAAoC,CACxC,SAAS,EAAE,IAAI,EACf,OAAO,EAAE,IAAI,EACb,MAAM,CAAC,EAAE,qBAAqB,EAC9B,KAAK,SAAO,EACZ,SAAS,GAAE,KAAK,GAAG,MAAc,GAChC,OAAO,CAAC,qBAAqB,EAAE,CAAC;IAqB7B,2BAA2B,CAC/B,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,OAAO,CAAC,qBAAqB,CAAC,GACtC,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC;IAgClC,8CAA8C,CAClD,WAAW,EAAE,MAAM,EAAE,EACrB,OAAO,EAAE,OAAO,CAAC,qBAAqB,CAAC,GACtC,OAAO,CAAC,qBAAqB,EAAE,CAAC;IAuC7B,gBAAgB,CACpB,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,wBAAwB,EAAE,CAAC;IA8EhC,eAAe,CACnB,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,wBAAwB,GAAG,IAAI,CAAC;IA2DrC,8BAA8B,CAClC,UAAU,EAAE,IAAI,EAChB,QAAQ,EAAE,IAAI,GACb,OAAO,CAAC,MAAM,CAAC;IAeZ,sBAAsB,IAAI,OAAO,CAAC;QACtC,cAAc,EAAE,MAAM,CAAC;QACvB,gBAAgB,EAAE,MAAM,CAAC;KAC1B,CAAC;IAoBI,+BAA+B,CACnC,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IAgBjB,qBAAqB,IAAI,OAAO,CAAC,MAAM,CAAC;IAWxC,iCAAiC,IAAI,OAAO,CAChD,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC,CAClD;IAiBK,0BAA0B,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,OAAO,CAC/D,KAAK,CAAC;QACJ,WAAW,EAAE,MAAM,CAAC;QACpB,kCAAkC,EAAE,MAAM,CAAC;QAC3C,oCAAoC,EAAE,MAAM,CAAC;KAC9C,CAAC,CACH;CA+CF"}
|