@render-foundation/utils 0.0.235 → 0.0.237
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/lib/cjs/assertSecrets.js +2 -1
- package/lib/cjs/assertSecrets.js.map +1 -1
- package/lib/cjs/backfiller.js +16 -16
- package/lib/cjs/backfiller.js.map +1 -1
- package/lib/cjs/client/dispersed.js +4 -4
- package/lib/cjs/client/dispersed.js.map +1 -1
- package/lib/cjs/client/onchain.js +3 -3
- package/lib/cjs/client/onchain.js.map +1 -1
- package/lib/cjs/client/pg/base.js +7 -7
- package/lib/cjs/client/pg/base.js.map +1 -1
- package/lib/cjs/client/pg/v1.js +31 -31
- package/lib/cjs/client/pg/v1.js.map +1 -1
- package/lib/cjs/client/pg/v2Client.js +225 -148
- package/lib/cjs/client/pg/v2Client.js.map +1 -1
- package/lib/cjs/client/pg/viewClient.js +6 -6
- package/lib/cjs/client/pg/viewClient.js.map +1 -1
- package/lib/cjs/client/price.js +2 -2
- package/lib/cjs/client/price.js.map +1 -1
- package/lib/cjs/client/render.js +10 -10
- package/lib/cjs/client/render.js.map +1 -1
- package/lib/cjs/client/squads.js +10 -20
- package/lib/cjs/client/squads.js.map +1 -1
- package/lib/cjs/client/trade.js +12 -15
- package/lib/cjs/client/trade.js.map +1 -1
- package/lib/cjs/client/wormhole.js +9 -19
- package/lib/cjs/client/wormhole.js.map +1 -1
- package/lib/cjs/errorReporter.js +1 -1
- package/lib/cjs/errorReporter.js.map +1 -1
- package/lib/cjs/index.js +7 -17
- package/lib/cjs/index.js.map +1 -1
- package/lib/cjs/tsconfig.cjs.tsbuildinfo +1 -1
- package/lib/esm/src/assertSecrets.js.map +1 -1
- package/lib/esm/src/backfiller.js.map +1 -1
- package/lib/esm/src/client/dispersed.js.map +1 -1
- package/lib/esm/src/client/onchain.js.map +1 -1
- package/lib/esm/src/client/pg/base.js.map +1 -1
- package/lib/esm/src/client/pg/v1.js.map +1 -1
- package/lib/esm/src/client/pg/v2Client.js +106 -22
- package/lib/esm/src/client/pg/v2Client.js.map +1 -1
- package/lib/esm/src/client/pg/viewClient.js.map +1 -1
- package/lib/esm/src/client/price.js.map +1 -1
- package/lib/esm/src/client/render.js.map +1 -1
- package/lib/esm/src/client/squads.js.map +1 -1
- package/lib/esm/src/client/trade.js +2 -2
- package/lib/esm/src/client/trade.js.map +1 -1
- package/lib/esm/src/client/wormhole.js.map +1 -1
- package/lib/esm/src/errorReporter.js.map +1 -1
- package/lib/esm/tsconfig.esm.tsbuildinfo +1 -1
- package/lib/types/src/backfiller.d.ts.map +1 -1
- package/lib/types/src/client/dispersed.d.ts.map +1 -1
- package/lib/types/src/client/onchain.d.ts +1 -2
- package/lib/types/src/client/onchain.d.ts.map +1 -1
- package/lib/types/src/client/pg/base.d.ts.map +1 -1
- package/lib/types/src/client/pg/v1.d.ts.map +1 -1
- package/lib/types/src/client/pg/v2Client.d.ts +14 -1
- package/lib/types/src/client/pg/v2Client.d.ts.map +1 -1
- package/lib/types/src/client/pg/viewClient.d.ts.map +1 -1
- package/lib/types/src/client/render.d.ts.map +1 -1
- package/lib/types/src/client/squads.d.ts.map +1 -1
- package/lib/types/src/client/trade.d.ts.map +1 -1
- package/lib/types/src/client/wormhole.d.ts +1 -1
- package/lib/types/src/client/wormhole.d.ts.map +1 -1
- package/lib/types/src/dbTypesV2.d.ts +10 -0
- package/lib/types/src/dbTypesV2.d.ts.map +1 -1
- package/lib/types/src/errorReporter.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -15,23 +15,13 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
15
15
|
}) : function(o, v) {
|
|
16
16
|
o["default"] = v;
|
|
17
17
|
});
|
|
18
|
-
var __importStar = (this && this.__importStar) ||
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
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
|
-
})();
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
35
25
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
36
26
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
37
27
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -45,7 +35,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
45
35
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
46
36
|
};
|
|
47
37
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
48
|
-
exports.pgClient = exports.batchFinishedAtMedian = exports.DISPERSED_SETTLEMENT_TABLE = exports.GRANT_BURN_TABLE = exports.GRANT_BURN_ID_TABLE = exports.USER_GRANT_SPEND_TABLE = exports.CURRENT_USER_GRANT_SPEND_TABLE = exports.POLYGON_UPGRADE_TABLE = exports.ENTITY_EPOCH_INFO_TABLE = exports.BURN_CORRECTION_TABLE = exports.NETWORK_REVENUE_TABLE = exports.BRIDGE_TRANSFER_TABLE = exports.BURN_TABLE = exports.JOB_TABLE = exports.JOB_ID_TABLE = exports.LIABILITY_ADJUSTMENT_BATCH_TABLE = exports.LIABILITY_ADJUSTMENT_TABLE = exports.LIABILITY_TABLE = exports.SOL_TRANSFER_TABLE = exports.ENTITY_TABLE = exports.MANUAL_BURN_TABLE = exports.EPOCH_TABLE = exports.SOL_TX_TABLE = void 0;
|
|
38
|
+
exports.pgClient = exports.batchFinishedAtMedian = exports.DISPERSED_BURN_CORRECTION_TABLE = exports.DISPERSED_SETTLEMENT_TABLE = exports.GRANT_BURN_TABLE = exports.GRANT_BURN_ID_TABLE = exports.USER_GRANT_SPEND_TABLE = exports.CURRENT_USER_GRANT_SPEND_TABLE = exports.POLYGON_UPGRADE_TABLE = exports.ENTITY_EPOCH_INFO_TABLE = exports.BURN_CORRECTION_TABLE = exports.NETWORK_REVENUE_TABLE = exports.BRIDGE_TRANSFER_TABLE = exports.BURN_TABLE = exports.JOB_TABLE = exports.JOB_ID_TABLE = exports.LIABILITY_ADJUSTMENT_BATCH_TABLE = exports.LIABILITY_ADJUSTMENT_TABLE = exports.LIABILITY_TABLE = exports.SOL_TRANSFER_TABLE = exports.ENTITY_TABLE = exports.MANUAL_BURN_TABLE = exports.EPOCH_TABLE = exports.SOL_TX_TABLE = void 0;
|
|
49
39
|
const kysely_1 = require("kysely");
|
|
50
40
|
const logger_1 = require("../../logger");
|
|
51
41
|
const pg_1 = require("pg");
|
|
@@ -72,6 +62,7 @@ exports.USER_GRANT_SPEND_TABLE = 'user_grant_spend';
|
|
|
72
62
|
exports.GRANT_BURN_ID_TABLE = 'grant_burn_id';
|
|
73
63
|
exports.GRANT_BURN_TABLE = 'grant_burn';
|
|
74
64
|
exports.DISPERSED_SETTLEMENT_TABLE = 'dispersed_settlement';
|
|
65
|
+
exports.DISPERSED_BURN_CORRECTION_TABLE = 'dispersed_burn_correction';
|
|
75
66
|
BigInt.prototype.toJSON = function () {
|
|
76
67
|
return this.toString();
|
|
77
68
|
};
|
|
@@ -92,6 +83,11 @@ const batchFinishedAtMedian = (jobs) => {
|
|
|
92
83
|
return pricedAt;
|
|
93
84
|
};
|
|
94
85
|
exports.batchFinishedAtMedian = batchFinishedAtMedian;
|
|
86
|
+
// Thrown+caught inside insertDispersedOutbox to roll back the txn when a correction draw would push
|
|
87
|
+
// consumed_render past amount_render (a concurrent draw won the room). Not exported — the caller sees
|
|
88
|
+
// { inserted: false } instead.
|
|
89
|
+
class DispersedCorrectionRejected extends Error {
|
|
90
|
+
}
|
|
95
91
|
const pgClient = (config) => {
|
|
96
92
|
// Single pg pool that we can also use for ad-hoc performance tests outside Kysely
|
|
97
93
|
const pgPool = new pg_1.Pool(config);
|
|
@@ -105,7 +101,7 @@ const pgClient = (config) => {
|
|
|
105
101
|
const db = new kysely_1.Kysely({
|
|
106
102
|
dialect,
|
|
107
103
|
});
|
|
108
|
-
const getOrInsertEntity = (
|
|
104
|
+
const getOrInsertEntity = (db, p, log = logger_1.consoleLogger) => __awaiter(void 0, void 0, void 0, function* () {
|
|
109
105
|
const res = (yield db
|
|
110
106
|
.selectFrom(exports.ENTITY_TABLE)
|
|
111
107
|
.select('id')
|
|
@@ -126,7 +122,7 @@ const pgClient = (config) => {
|
|
|
126
122
|
log.debug(`inserted entity ${id}`);
|
|
127
123
|
return id;
|
|
128
124
|
});
|
|
129
|
-
const getOrInsertTx = (
|
|
125
|
+
const getOrInsertTx = (db, p, log = logger_1.consoleLogger) => __awaiter(void 0, void 0, void 0, function* () {
|
|
130
126
|
const res = yield db
|
|
131
127
|
.selectFrom(exports.SOL_TX_TABLE)
|
|
132
128
|
.select('id')
|
|
@@ -148,7 +144,7 @@ const pgClient = (config) => {
|
|
|
148
144
|
log.debug(`inserted tx ${id}`);
|
|
149
145
|
return id;
|
|
150
146
|
});
|
|
151
|
-
const getOrInsertEpoch = (
|
|
147
|
+
const getOrInsertEpoch = (db, p, log = logger_1.consoleLogger) => __awaiter(void 0, void 0, void 0, function* () {
|
|
152
148
|
const res = yield db
|
|
153
149
|
.selectFrom(exports.EPOCH_TABLE)
|
|
154
150
|
.select('id')
|
|
@@ -176,7 +172,7 @@ const pgClient = (config) => {
|
|
|
176
172
|
log.debug(`inserted epoch ${id}`);
|
|
177
173
|
return id;
|
|
178
174
|
});
|
|
179
|
-
const getCurrentUserGrantSpend = (
|
|
175
|
+
const getCurrentUserGrantSpend = (db, p, log = logger_1.consoleLogger) => __awaiter(void 0, void 0, void 0, function* () {
|
|
180
176
|
var _a;
|
|
181
177
|
const res = yield db
|
|
182
178
|
.selectFrom(exports.CURRENT_USER_GRANT_SPEND_TABLE)
|
|
@@ -206,7 +202,7 @@ const pgClient = (config) => {
|
|
|
206
202
|
.executeTakeFirst());
|
|
207
203
|
log.info(`set ${res.numUpdatedRows} rows. channel: ${p.channel}, ui: ${p.uiEpochId} -> totalRndr ${totalRndr} `);
|
|
208
204
|
});
|
|
209
|
-
const fetchJobs1 = (
|
|
205
|
+
const fetchJobs1 = (db, f, log = logger_1.consoleLogger) => __awaiter(void 0, void 0, void 0, function* () {
|
|
210
206
|
let q = db.selectFrom('job').selectAll();
|
|
211
207
|
//.where('job.burn_id', 'is not', null)
|
|
212
208
|
if (f.completedAtAfter) {
|
|
@@ -236,7 +232,7 @@ const pgClient = (config) => {
|
|
|
236
232
|
insertedAt: r.inserted_at,
|
|
237
233
|
}));
|
|
238
234
|
});
|
|
239
|
-
const fetchJobs2 = (
|
|
235
|
+
const fetchJobs2 = (db, f, log = logger_1.consoleLogger) => __awaiter(void 0, void 0, void 0, function* () {
|
|
240
236
|
let q = db.selectFrom('job').selectAll();
|
|
241
237
|
//.where('job.burn_id', 'is not', null)
|
|
242
238
|
if (f.completedAtAfter) {
|
|
@@ -270,7 +266,7 @@ const pgClient = (config) => {
|
|
|
270
266
|
});
|
|
271
267
|
});
|
|
272
268
|
});
|
|
273
|
-
const createBridgeTransfers = (
|
|
269
|
+
const createBridgeTransfers = (db, bts, log = logger_1.consoleLogger) => __awaiter(void 0, void 0, void 0, function* () {
|
|
274
270
|
const sequenceNumbers = [];
|
|
275
271
|
const dbEpochIds = [];
|
|
276
272
|
for (const bt of bts) {
|
|
@@ -314,7 +310,7 @@ const pgClient = (config) => {
|
|
|
314
310
|
}
|
|
315
311
|
return { sequenceNumbers: sequenceNumbers };
|
|
316
312
|
});
|
|
317
|
-
const createPayments = (
|
|
313
|
+
const createPayments = (db, ps, log = logger_1.consoleLogger) => __awaiter(void 0, void 0, void 0, function* () {
|
|
318
314
|
const ids = [];
|
|
319
315
|
const epochDbIds = [];
|
|
320
316
|
for (const p of ps) {
|
|
@@ -411,18 +407,18 @@ const pgClient = (config) => {
|
|
|
411
407
|
rollback: () => { },
|
|
412
408
|
trx: db,
|
|
413
409
|
},
|
|
414
|
-
startTransaction() {
|
|
415
|
-
return __awaiter(this,
|
|
410
|
+
startTransaction(log = logger_1.consoleLogger) {
|
|
411
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
416
412
|
return (0, base_2.begin)(db, log);
|
|
417
413
|
});
|
|
418
414
|
},
|
|
419
|
-
createPayments(
|
|
420
|
-
return __awaiter(this,
|
|
415
|
+
createPayments(db, ps, log = logger_1.consoleLogger) {
|
|
416
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
421
417
|
return createPayments(db.trx, ps, log);
|
|
422
418
|
});
|
|
423
419
|
},
|
|
424
|
-
fetchTransfers(
|
|
425
|
-
return __awaiter(this,
|
|
420
|
+
fetchTransfers(db, f, log = logger_1.consoleLogger) {
|
|
421
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
426
422
|
let lastId = undefined;
|
|
427
423
|
if (f.cursor) {
|
|
428
424
|
lastId = atob(f.cursor);
|
|
@@ -478,8 +474,8 @@ const pgClient = (config) => {
|
|
|
478
474
|
};
|
|
479
475
|
});
|
|
480
476
|
},
|
|
481
|
-
fetchEpochs(
|
|
482
|
-
return __awaiter(this,
|
|
477
|
+
fetchEpochs(db, f, log = logger_1.consoleLogger) {
|
|
478
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
483
479
|
let q = db.trx.selectFrom(exports.EPOCH_TABLE).selectAll();
|
|
484
480
|
if (f.channels) {
|
|
485
481
|
q = q.where('channel', 'in', f.channels);
|
|
@@ -502,9 +498,9 @@ const pgClient = (config) => {
|
|
|
502
498
|
}));
|
|
503
499
|
});
|
|
504
500
|
},
|
|
505
|
-
fetchLiabilities(
|
|
506
|
-
|
|
507
|
-
|
|
501
|
+
fetchLiabilities(db, f, log = logger_1.consoleLogger) {
|
|
502
|
+
var _a;
|
|
503
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
508
504
|
let offset = 0;
|
|
509
505
|
let orderBy = (_a = f.orderBy) !== null && _a !== void 0 ? _a : 'epoch.ui,liability.id';
|
|
510
506
|
if (f.cursor) {
|
|
@@ -571,8 +567,8 @@ const pgClient = (config) => {
|
|
|
571
567
|
};
|
|
572
568
|
});
|
|
573
569
|
},
|
|
574
|
-
getLiabilitiesAndTransfers(
|
|
575
|
-
return __awaiter(this,
|
|
570
|
+
getLiabilitiesAndTransfers(f, log = logger_1.consoleLogger) {
|
|
571
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
576
572
|
let lq = db
|
|
577
573
|
.selectFrom(exports.LIABILITY_TABLE)
|
|
578
574
|
.selectAll()
|
|
@@ -633,9 +629,9 @@ const pgClient = (config) => {
|
|
|
633
629
|
return { transfers, liabilities, epochs: Object.values(epochs) };
|
|
634
630
|
});
|
|
635
631
|
},
|
|
636
|
-
getOutstanding(
|
|
637
|
-
|
|
638
|
-
|
|
632
|
+
getOutstanding(f, log = logger_1.consoleLogger) {
|
|
633
|
+
var _a, _b, _c, _d, _e;
|
|
634
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
639
635
|
log.info(`getting outstanding balances for ${(_a = f.channels) !== null && _a !== void 0 ? _a : '(no channels specified)'} epoch: ${(_b = f.startEpochId.id) !== null && _b !== void 0 ? _b : '(no epoch specified)'}`);
|
|
640
636
|
let epochUi;
|
|
641
637
|
let epochEndTime;
|
|
@@ -771,8 +767,8 @@ const pgClient = (config) => {
|
|
|
771
767
|
return out;
|
|
772
768
|
});
|
|
773
769
|
},
|
|
774
|
-
addLiabilityAdjustments(
|
|
775
|
-
return __awaiter(this,
|
|
770
|
+
addLiabilityAdjustments(batch, rows, log = logger_1.consoleLogger) {
|
|
771
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
776
772
|
return yield db.transaction().execute((trx) => __awaiter(this, void 0, void 0, function* () {
|
|
777
773
|
var _a;
|
|
778
774
|
// Upsert the batch by its label (idempotent re-runs; label is the run identity).
|
|
@@ -824,9 +820,9 @@ const pgClient = (config) => {
|
|
|
824
820
|
}));
|
|
825
821
|
});
|
|
826
822
|
},
|
|
827
|
-
fetchNodeOperatorEpoch(
|
|
828
|
-
|
|
829
|
-
|
|
823
|
+
fetchNodeOperatorEpoch(epochId, log = logger_1.consoleLogger) {
|
|
824
|
+
var _a;
|
|
825
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
830
826
|
const q = db
|
|
831
827
|
.selectFrom(exports.JOB_ID_TABLE)
|
|
832
828
|
.innerJoin(exports.EPOCH_TABLE, 'epoch.id', 'job_id.epoch_id')
|
|
@@ -876,14 +872,14 @@ const pgClient = (config) => {
|
|
|
876
872
|
};
|
|
877
873
|
});
|
|
878
874
|
},
|
|
879
|
-
insertEpoch(
|
|
880
|
-
return __awaiter(this,
|
|
875
|
+
insertEpoch(db, epoch, log = logger_1.consoleLogger) {
|
|
876
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
881
877
|
yield getOrInsertEpoch(db.trx, Object.assign(Object.assign({}, epoch), { uiEpochId: epoch.ui }), log);
|
|
882
878
|
});
|
|
883
879
|
},
|
|
884
|
-
getEpoch(
|
|
885
|
-
|
|
886
|
-
|
|
880
|
+
getEpoch(f, log = logger_1.consoleLogger) {
|
|
881
|
+
var _a;
|
|
882
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
887
883
|
const now = new Date(Date.now());
|
|
888
884
|
try {
|
|
889
885
|
let q = db
|
|
@@ -921,9 +917,9 @@ const pgClient = (config) => {
|
|
|
921
917
|
}
|
|
922
918
|
});
|
|
923
919
|
},
|
|
924
|
-
getLatestNodeOperatorEpoch(
|
|
925
|
-
|
|
926
|
-
|
|
920
|
+
getLatestNodeOperatorEpoch(f, log = logger_1.consoleLogger) {
|
|
921
|
+
var _a;
|
|
922
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
927
923
|
const now = new Date(Date.now());
|
|
928
924
|
try {
|
|
929
925
|
let q = db
|
|
@@ -963,8 +959,8 @@ const pgClient = (config) => {
|
|
|
963
959
|
}
|
|
964
960
|
});
|
|
965
961
|
},
|
|
966
|
-
saveNodeOperatorEpoch(
|
|
967
|
-
return __awaiter(this,
|
|
962
|
+
saveNodeOperatorEpoch(epochId, liabilities, jobIds, totalRndr, log = logger_1.consoleLogger) {
|
|
963
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
968
964
|
yield db
|
|
969
965
|
.transaction()
|
|
970
966
|
.setIsolationLevel('repeatable read')
|
|
@@ -1000,8 +996,8 @@ const pgClient = (config) => {
|
|
|
1000
996
|
return;
|
|
1001
997
|
});
|
|
1002
998
|
},
|
|
1003
|
-
produceBurnedJobs(
|
|
1004
|
-
return __awaiter(this,
|
|
999
|
+
produceBurnedJobs(jobs, log = logger_1.consoleLogger) {
|
|
1000
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1005
1001
|
yield db.transaction().execute((trx) => __awaiter(this, void 0, void 0, function* () {
|
|
1006
1002
|
var _a;
|
|
1007
1003
|
let num = BigInt(0);
|
|
@@ -1024,9 +1020,9 @@ const pgClient = (config) => {
|
|
|
1024
1020
|
}));
|
|
1025
1021
|
});
|
|
1026
1022
|
},
|
|
1027
|
-
markJobsBurntWithGrant(
|
|
1028
|
-
|
|
1029
|
-
|
|
1023
|
+
markJobsBurntWithGrant(db, p, log = logger_1.consoleLogger) {
|
|
1024
|
+
var _a;
|
|
1025
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1030
1026
|
const solTxId = yield getOrInsertTx(db.trx, { sig: p.tx.sig, executedAt: p.tx.executedAt }, log);
|
|
1031
1027
|
const { id } = yield db.trx
|
|
1032
1028
|
.insertInto(exports.GRANT_BURN_TABLE)
|
|
@@ -1057,9 +1053,9 @@ const pgClient = (config) => {
|
|
|
1057
1053
|
return;
|
|
1058
1054
|
});
|
|
1059
1055
|
},
|
|
1060
|
-
insertGrantSpend(
|
|
1061
|
-
|
|
1062
|
-
|
|
1056
|
+
insertGrantSpend(db, p, log = logger_1.consoleLogger) {
|
|
1057
|
+
var _a, _b, _c;
|
|
1058
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1063
1059
|
const existing = yield getCurrentUserGrantSpend(db.trx, { userId: p.userId }, log);
|
|
1064
1060
|
const diff = {
|
|
1065
1061
|
render_spent: ((_a = existing === null || existing === void 0 ? void 0 : existing.renderSpent) !== null && _a !== void 0 ? _a : BigInt(0)) + p.renderSpentDelta,
|
|
@@ -1124,9 +1120,9 @@ const pgClient = (config) => {
|
|
|
1124
1120
|
}
|
|
1125
1121
|
});
|
|
1126
1122
|
},
|
|
1127
|
-
markJobsBurnt(
|
|
1128
|
-
|
|
1129
|
-
|
|
1123
|
+
markJobsBurnt(trx, p, log = logger_1.consoleLogger) {
|
|
1124
|
+
var _a, _b;
|
|
1125
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1130
1126
|
if (!p.buyBurn && !p.grantBurn) {
|
|
1131
1127
|
throw new Error('no buyBurn or grantBurn');
|
|
1132
1128
|
}
|
|
@@ -1227,8 +1223,8 @@ const pgClient = (config) => {
|
|
|
1227
1223
|
return { grantBurnId, buyBurnId };
|
|
1228
1224
|
});
|
|
1229
1225
|
},
|
|
1230
|
-
markJobsBurned(
|
|
1231
|
-
return __awaiter(this,
|
|
1226
|
+
markJobsBurned(trx, p, log = logger_1.consoleLogger) {
|
|
1227
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1232
1228
|
let { markedAt, solTx } = p;
|
|
1233
1229
|
let res = yield trx.trx
|
|
1234
1230
|
.updateTable(exports.BURN_TABLE)
|
|
@@ -1252,8 +1248,8 @@ const pgClient = (config) => {
|
|
|
1252
1248
|
}
|
|
1253
1249
|
});
|
|
1254
1250
|
},
|
|
1255
|
-
consumeAndLockBurnJobs(
|
|
1256
|
-
return __awaiter(this,
|
|
1251
|
+
consumeAndLockBurnJobs(limit, lowerRndrThreshold, upperRndrThreshold, log = logger_1.consoleLogger) {
|
|
1252
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1257
1253
|
const trx = yield (0, base_2.begin)(db, log);
|
|
1258
1254
|
const q = trx.trx
|
|
1259
1255
|
.selectFrom(trx.trx
|
|
@@ -1360,9 +1356,9 @@ const pgClient = (config) => {
|
|
|
1360
1356
|
};
|
|
1361
1357
|
});
|
|
1362
1358
|
},
|
|
1363
|
-
incrBuyBurnMetrics() {
|
|
1364
|
-
|
|
1365
|
-
|
|
1359
|
+
incrBuyBurnMetrics(log = logger_1.consoleLogger) {
|
|
1360
|
+
var _a;
|
|
1361
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1366
1362
|
const res = yield db
|
|
1367
1363
|
.selectFrom(exports.JOB_TABLE)
|
|
1368
1364
|
.select('inserted_at')
|
|
@@ -1379,9 +1375,9 @@ const pgClient = (config) => {
|
|
|
1379
1375
|
};
|
|
1380
1376
|
});
|
|
1381
1377
|
},
|
|
1382
|
-
fetchBurns(
|
|
1383
|
-
|
|
1384
|
-
|
|
1378
|
+
fetchBurns(db, f, log = logger_1.consoleLogger) {
|
|
1379
|
+
var _a, _b;
|
|
1380
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1385
1381
|
let q = db.trx
|
|
1386
1382
|
.selectFrom('burn')
|
|
1387
1383
|
.selectAll('burn')
|
|
@@ -1450,9 +1446,9 @@ const pgClient = (config) => {
|
|
|
1450
1446
|
return burns;
|
|
1451
1447
|
});
|
|
1452
1448
|
},
|
|
1453
|
-
fetchBurnsAndGrants(
|
|
1454
|
-
|
|
1455
|
-
|
|
1449
|
+
fetchBurnsAndGrants(db, f, log = logger_1.consoleLogger) {
|
|
1450
|
+
var _a, _b;
|
|
1451
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1456
1452
|
// Build a unified query to get all transactions with both buy burns and grant burns
|
|
1457
1453
|
let baseQuery = db.trx
|
|
1458
1454
|
.selectFrom('sol_tx')
|
|
@@ -1590,13 +1586,13 @@ const pgClient = (config) => {
|
|
|
1590
1586
|
return groupedBurns;
|
|
1591
1587
|
});
|
|
1592
1588
|
},
|
|
1593
|
-
createBridgeTransfers(
|
|
1594
|
-
return __awaiter(this,
|
|
1589
|
+
createBridgeTransfers(db, bts, log = logger_1.consoleLogger) {
|
|
1590
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1595
1591
|
return createBridgeTransfers(db.trx, bts, log);
|
|
1596
1592
|
});
|
|
1597
1593
|
},
|
|
1598
|
-
getBridgeTransfers(
|
|
1599
|
-
return __awaiter(this,
|
|
1594
|
+
getBridgeTransfers({ solKey, page, }, log = logger_1.consoleLogger) {
|
|
1595
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1600
1596
|
let q = db
|
|
1601
1597
|
.selectFrom(exports.BRIDGE_TRANSFER_TABLE)
|
|
1602
1598
|
.innerJoin(exports.EPOCH_TABLE, 'epoch.id', 'bridge_transfer.epoch_id')
|
|
@@ -1673,8 +1669,8 @@ const pgClient = (config) => {
|
|
|
1673
1669
|
});
|
|
1674
1670
|
},
|
|
1675
1671
|
getTotalBurned(db) {
|
|
1672
|
+
var _a, _b;
|
|
1676
1673
|
return __awaiter(this, void 0, void 0, function* () {
|
|
1677
|
-
var _a, _b;
|
|
1678
1674
|
const total = yield db.trx
|
|
1679
1675
|
.selectFrom('burn')
|
|
1680
1676
|
.select(({ fn }) => fn.sum('burned').as('total_burned'))
|
|
@@ -1682,8 +1678,8 @@ const pgClient = (config) => {
|
|
|
1682
1678
|
return BigInt((_b = (_a = total[0]) === null || _a === void 0 ? void 0 : _a.total_burned) !== null && _b !== void 0 ? _b : 0);
|
|
1683
1679
|
});
|
|
1684
1680
|
},
|
|
1685
|
-
insertBurn(
|
|
1686
|
-
return __awaiter(this,
|
|
1681
|
+
insertBurn(p, log = logger_1.consoleLogger) {
|
|
1682
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1687
1683
|
yield db.transaction().execute((trx) => __awaiter(this, void 0, void 0, function* () {
|
|
1688
1684
|
var _a;
|
|
1689
1685
|
const solTxId = yield getOrInsertTx(trx, { sig: p.solTx, executedAt: p.executedAt }, log);
|
|
@@ -1720,29 +1716,86 @@ const pgClient = (config) => {
|
|
|
1720
1716
|
}));
|
|
1721
1717
|
});
|
|
1722
1718
|
},
|
|
1723
|
-
insertDispersedOutbox(
|
|
1724
|
-
return __awaiter(this,
|
|
1725
|
-
|
|
1726
|
-
|
|
1727
|
-
|
|
1728
|
-
|
|
1729
|
-
|
|
1730
|
-
|
|
1731
|
-
|
|
1732
|
-
|
|
1733
|
-
|
|
1734
|
-
|
|
1735
|
-
|
|
1736
|
-
|
|
1737
|
-
|
|
1738
|
-
|
|
1739
|
-
|
|
1719
|
+
insertDispersedOutbox(p, log = logger_1.consoleLogger) {
|
|
1720
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1721
|
+
// The outbox row is the durable, crash-safe anchor persisted BEFORE broadcast. When it carries a
|
|
1722
|
+
// burn-correction draw, we increment consumed_render in the SAME transaction as the insert, bounded
|
|
1723
|
+
// so it can never exceed amount_render. Row + counter are therefore atomic and inseparable: no
|
|
1724
|
+
// reserve/insert gap to orphan on process death, and the counter reflects exactly the durable rows
|
|
1725
|
+
// (decremented again by voidDispersedOutbox). If the bounded increment can't fit (a concurrent draw
|
|
1726
|
+
// took the room), the whole txn rolls back and we return {inserted:false} — the caller must NOT
|
|
1727
|
+
// broadcast (no row, no counter change, no burn).
|
|
1728
|
+
return yield db.transaction().execute((trx) => __awaiter(this, void 0, void 0, function* () {
|
|
1729
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
1730
|
+
const res = yield trx
|
|
1731
|
+
.insertInto(exports.DISPERSED_SETTLEMENT_TABLE)
|
|
1732
|
+
.values({
|
|
1733
|
+
tx_signature: p.txSignature,
|
|
1734
|
+
claim_uuid: p.claimUuid,
|
|
1735
|
+
obligation_uuids: p.obligationUuids,
|
|
1736
|
+
settled_amount: p.settledAmount,
|
|
1737
|
+
burned_amount: p.burnedAmount,
|
|
1738
|
+
executed_at: p.executedAt,
|
|
1739
|
+
eur_render: (_a = p.eurRender) !== null && _a !== void 0 ? _a : null,
|
|
1740
|
+
last_valid_block_height: (_b = p.lastValidBlockHeight) !== null && _b !== void 0 ? _b : null,
|
|
1741
|
+
usdc_spent: (_c = p.usdcSpent) !== null && _c !== void 0 ? _c : null,
|
|
1742
|
+
correction_id: (_d = p.correctionId) !== null && _d !== void 0 ? _d : null,
|
|
1743
|
+
correction_render: (_e = p.correctionRender) !== null && _e !== void 0 ? _e : null,
|
|
1744
|
+
})
|
|
1745
|
+
.onConflict((oc) => oc.column('tx_signature').doNothing())
|
|
1746
|
+
.executeTakeFirst();
|
|
1747
|
+
const inserted = ((_f = res.numInsertedOrUpdatedRows) !== null && _f !== void 0 ? _f : BigInt(0)) > BigInt(0);
|
|
1748
|
+
// Only reserve when the row was actually inserted (a tx_signature conflict is a no-op → no double
|
|
1749
|
+
// count) and it drew a correction.
|
|
1750
|
+
if (inserted &&
|
|
1751
|
+
p.correctionId != null &&
|
|
1752
|
+
p.correctionRender != null &&
|
|
1753
|
+
Number(p.correctionRender) > 0) {
|
|
1754
|
+
const upd = yield trx
|
|
1755
|
+
.updateTable(exports.DISPERSED_BURN_CORRECTION_TABLE)
|
|
1756
|
+
.set({
|
|
1757
|
+
consumed_render: (0, kysely_1.sql) `consumed_render + ${p.correctionRender}::numeric`,
|
|
1758
|
+
})
|
|
1759
|
+
.where('id', '=', String(p.correctionId))
|
|
1760
|
+
.where((eb) => eb((0, kysely_1.sql) `consumed_render + ${p.correctionRender}::numeric`, '<=', eb.ref('amount_render')))
|
|
1761
|
+
.executeTakeFirst();
|
|
1762
|
+
if (((_g = upd.numUpdatedRows) !== null && _g !== void 0 ? _g : BigInt(0)) === BigInt(0)) {
|
|
1763
|
+
// Would exceed amount_render (concurrent draw won the room) — roll back the whole txn.
|
|
1764
|
+
log.warn(`dispersed correction ${p.correctionId}: draw ${p.correctionRender} would over-consume; rejecting outbox insert for tx ${p.txSignature}`);
|
|
1765
|
+
throw new DispersedCorrectionRejected();
|
|
1766
|
+
}
|
|
1767
|
+
}
|
|
1768
|
+
log.debug(`dispersed outbox tx ${p.txSignature}: ${res.numInsertedOrUpdatedRows} row(s)`);
|
|
1769
|
+
return { inserted };
|
|
1770
|
+
})).catch((e) => {
|
|
1771
|
+
if (e instanceof DispersedCorrectionRejected)
|
|
1772
|
+
return { inserted: false };
|
|
1773
|
+
throw e;
|
|
1774
|
+
});
|
|
1775
|
+
});
|
|
1776
|
+
},
|
|
1777
|
+
getOutstandingDispersedCorrection(log = logger_1.consoleLogger) {
|
|
1778
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1779
|
+
// consumed_render is the atomic source of truth; outstanding = amount_render - consumed_render.
|
|
1780
|
+
const c = yield db
|
|
1781
|
+
.selectFrom(exports.DISPERSED_BURN_CORRECTION_TABLE)
|
|
1782
|
+
.select(['id', 'amount_render', 'consumed_render'])
|
|
1783
|
+
.where((eb) => eb('consumed_render', '<', eb.ref('amount_render')))
|
|
1784
|
+
.orderBy('id', 'asc')
|
|
1785
|
+
.limit(1)
|
|
1740
1786
|
.executeTakeFirst();
|
|
1741
|
-
|
|
1787
|
+
if (!c)
|
|
1788
|
+
return null;
|
|
1789
|
+
log.debug(`dispersed correction ${c.id}: outstanding ${Number(c.amount_render) - Number(c.consumed_render)} RENDER`);
|
|
1790
|
+
return {
|
|
1791
|
+
id: Number(c.id),
|
|
1792
|
+
amountRender: c.amount_render,
|
|
1793
|
+
consumed: c.consumed_render,
|
|
1794
|
+
};
|
|
1742
1795
|
});
|
|
1743
1796
|
},
|
|
1744
|
-
markDispersedSettled(
|
|
1745
|
-
return __awaiter(this,
|
|
1797
|
+
markDispersedSettled(txSignature, p, log = logger_1.consoleLogger) {
|
|
1798
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1746
1799
|
yield db
|
|
1747
1800
|
.updateTable(exports.DISPERSED_SETTLEMENT_TABLE)
|
|
1748
1801
|
.set({ settled_at: new Date(), idempotent_replay: p.idempotentReplay })
|
|
@@ -1751,8 +1804,8 @@ const pgClient = (config) => {
|
|
|
1751
1804
|
log.debug(`dispersed settled tx ${txSignature}`);
|
|
1752
1805
|
});
|
|
1753
1806
|
},
|
|
1754
|
-
getUnsettledDispersed() {
|
|
1755
|
-
return __awaiter(this,
|
|
1807
|
+
getUnsettledDispersed(log = logger_1.consoleLogger) {
|
|
1808
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1756
1809
|
const rows = yield db
|
|
1757
1810
|
.selectFrom(exports.DISPERSED_SETTLEMENT_TABLE)
|
|
1758
1811
|
.selectAll()
|
|
@@ -1778,20 +1831,44 @@ const pgClient = (config) => {
|
|
|
1778
1831
|
});
|
|
1779
1832
|
});
|
|
1780
1833
|
},
|
|
1781
|
-
voidDispersedOutbox(
|
|
1782
|
-
return __awaiter(this,
|
|
1783
|
-
|
|
1784
|
-
|
|
1785
|
-
|
|
1786
|
-
|
|
1787
|
-
|
|
1788
|
-
|
|
1789
|
-
|
|
1834
|
+
voidDispersedOutbox(txSignature, log = logger_1.consoleLogger) {
|
|
1835
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1836
|
+
// Void = the burn provably never landed. If the row drew a correction, give that draw back
|
|
1837
|
+
// (decrement consumed_render) in the SAME txn as the delete, so the correction only counts draws
|
|
1838
|
+
// whose burns actually landed. This is how a released reservation is reconciled from chain state.
|
|
1839
|
+
yield db.transaction().execute((trx) => __awaiter(this, void 0, void 0, function* () {
|
|
1840
|
+
var _a;
|
|
1841
|
+
const row = yield trx
|
|
1842
|
+
.selectFrom(exports.DISPERSED_SETTLEMENT_TABLE)
|
|
1843
|
+
.select(['correction_id', 'correction_render'])
|
|
1844
|
+
.where('tx_signature', '=', txSignature)
|
|
1845
|
+
.where('settled_at', 'is', null)
|
|
1846
|
+
.executeTakeFirst();
|
|
1847
|
+
const res = yield trx
|
|
1848
|
+
.deleteFrom(exports.DISPERSED_SETTLEMENT_TABLE)
|
|
1849
|
+
.where('tx_signature', '=', txSignature)
|
|
1850
|
+
// Never delete a row we already settled — void only applies to pending (un-landed) rows.
|
|
1851
|
+
.where('settled_at', 'is', null)
|
|
1852
|
+
.executeTakeFirst();
|
|
1853
|
+
if (((_a = res.numDeletedRows) !== null && _a !== void 0 ? _a : BigInt(0)) > BigInt(0) &&
|
|
1854
|
+
(row === null || row === void 0 ? void 0 : row.correction_id) != null &&
|
|
1855
|
+
row.correction_render != null) {
|
|
1856
|
+
yield trx
|
|
1857
|
+
.updateTable(exports.DISPERSED_BURN_CORRECTION_TABLE)
|
|
1858
|
+
.set({
|
|
1859
|
+
consumed_render: (0, kysely_1.sql) `GREATEST(0, consumed_render - ${row.correction_render}::numeric)`,
|
|
1860
|
+
})
|
|
1861
|
+
.where('id', '=', row.correction_id)
|
|
1862
|
+
.execute();
|
|
1863
|
+
log.debug(`dispersed void tx ${txSignature}: released ${row.correction_render} RENDER to correction ${row.correction_id}`);
|
|
1864
|
+
}
|
|
1865
|
+
log.debug(`dispersed outbox void tx ${txSignature}: ${res.numDeletedRows} row(s)`);
|
|
1866
|
+
}));
|
|
1790
1867
|
});
|
|
1791
1868
|
},
|
|
1792
|
-
fetchDispersedSettlements(
|
|
1793
|
-
|
|
1794
|
-
|
|
1869
|
+
fetchDispersedSettlements(f, _log = logger_1.consoleLogger) {
|
|
1870
|
+
var _a;
|
|
1871
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1795
1872
|
let q = db
|
|
1796
1873
|
.selectFrom(exports.DISPERSED_SETTLEMENT_TABLE)
|
|
1797
1874
|
// Settled burns only — pending (un-landed) outbox rows aren't real, completed burns.
|
|
@@ -1831,8 +1908,8 @@ const pgClient = (config) => {
|
|
|
1831
1908
|
});
|
|
1832
1909
|
});
|
|
1833
1910
|
},
|
|
1834
|
-
fetchDispersedMonthlyStats(
|
|
1835
|
-
return __awaiter(this,
|
|
1911
|
+
fetchDispersedMonthlyStats(f, _log = logger_1.consoleLogger) {
|
|
1912
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1836
1913
|
let q = db
|
|
1837
1914
|
.selectFrom(exports.DISPERSED_SETTLEMENT_TABLE)
|
|
1838
1915
|
.where('settled_at', 'is not', null);
|
|
@@ -1862,18 +1939,18 @@ const pgClient = (config) => {
|
|
|
1862
1939
|
}));
|
|
1863
1940
|
});
|
|
1864
1941
|
},
|
|
1865
|
-
fetchJobs(
|
|
1866
|
-
return __awaiter(this,
|
|
1942
|
+
fetchJobs(db, f, log = logger_1.consoleLogger) {
|
|
1943
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1867
1944
|
return yield fetchJobs1(db.trx, f, log);
|
|
1868
1945
|
});
|
|
1869
1946
|
},
|
|
1870
|
-
fetchJobsWithGrantValues(
|
|
1871
|
-
return __awaiter(this,
|
|
1947
|
+
fetchJobsWithGrantValues(db, f, log = logger_1.consoleLogger) {
|
|
1948
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1872
1949
|
return yield fetchJobs2(db.trx, f, log);
|
|
1873
1950
|
});
|
|
1874
1951
|
},
|
|
1875
|
-
fetchLiabilityEpochs(
|
|
1876
|
-
return __awaiter(this,
|
|
1952
|
+
fetchLiabilityEpochs(db, log = logger_1.consoleLogger) {
|
|
1953
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1877
1954
|
const q = db.trx
|
|
1878
1955
|
.selectFrom(exports.LIABILITY_TABLE)
|
|
1879
1956
|
.select(({ fn }) => [
|
|
@@ -1931,8 +2008,8 @@ const pgClient = (config) => {
|
|
|
1931
2008
|
}));
|
|
1932
2009
|
});
|
|
1933
2010
|
},
|
|
1934
|
-
createBurnCorrection(
|
|
1935
|
-
return __awaiter(this,
|
|
2011
|
+
createBurnCorrection(trx, p, log = logger_1.consoleLogger) {
|
|
2012
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1936
2013
|
// Anchor + unit invariants are also DB CHECKs; validate here for a clearer error.
|
|
1937
2014
|
if ((p.jobId == null) === (p.solTxId == null))
|
|
1938
2015
|
throw new Error('burn_correction needs exactly one anchor (jobId XOR solTxId)');
|
|
@@ -1962,8 +2039,8 @@ const pgClient = (config) => {
|
|
|
1962
2039
|
return Number(row.id);
|
|
1963
2040
|
});
|
|
1964
2041
|
},
|
|
1965
|
-
getBurnCorrections(
|
|
1966
|
-
return __awaiter(this,
|
|
2042
|
+
getBurnCorrections(trx, ps, log = logger_1.consoleLogger) {
|
|
2043
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1967
2044
|
if (!ps.toFill)
|
|
1968
2045
|
return [];
|
|
1969
2046
|
// fill column depends on kind: down_adjust consumes (to_burn - burned); escrow_credit consumes
|
|
@@ -2006,8 +2083,8 @@ const pgClient = (config) => {
|
|
|
2006
2083
|
});
|
|
2007
2084
|
});
|
|
2008
2085
|
},
|
|
2009
|
-
insertPolygonUpgrade(
|
|
2010
|
-
return __awaiter(this,
|
|
2086
|
+
insertPolygonUpgrade(db, p, log = logger_1.consoleLogger) {
|
|
2087
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
2011
2088
|
const solTxId = yield getOrInsertTx(db.trx, {
|
|
2012
2089
|
sig: p.solTx.sig,
|
|
2013
2090
|
executedAt: p.solTx.executedAt,
|
|
@@ -2025,8 +2102,8 @@ const pgClient = (config) => {
|
|
|
2025
2102
|
return;
|
|
2026
2103
|
});
|
|
2027
2104
|
},
|
|
2028
|
-
fetchPolygonUpgrades(
|
|
2029
|
-
return __awaiter(this,
|
|
2105
|
+
fetchPolygonUpgrades(db, f, log = logger_1.consoleLogger) {
|
|
2106
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
2030
2107
|
let query = db.trx
|
|
2031
2108
|
.selectFrom('polygon_upgrade')
|
|
2032
2109
|
.selectAll('polygon_upgrade')
|
|
@@ -2052,13 +2129,13 @@ const pgClient = (config) => {
|
|
|
2052
2129
|
}));
|
|
2053
2130
|
});
|
|
2054
2131
|
},
|
|
2055
|
-
getCurrentUserGrantSpend(
|
|
2056
|
-
return __awaiter(this,
|
|
2132
|
+
getCurrentUserGrantSpend(db, f, log = logger_1.consoleLogger) {
|
|
2133
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
2057
2134
|
return yield getCurrentUserGrantSpend(db.trx, f, log);
|
|
2058
2135
|
});
|
|
2059
2136
|
},
|
|
2060
|
-
deleteAll() {
|
|
2061
|
-
return __awaiter(this,
|
|
2137
|
+
deleteAll(log = logger_1.consoleLogger) {
|
|
2138
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
2062
2139
|
if (config.database.includes('render')) {
|
|
2063
2140
|
throw new Error('cannot nuke from deployed database. call from tests only');
|
|
2064
2141
|
}
|
|
@@ -2104,8 +2181,8 @@ const pgClient = (config) => {
|
|
|
2104
2181
|
}
|
|
2105
2182
|
});
|
|
2106
2183
|
},
|
|
2107
|
-
checkPaymentsForDate(
|
|
2108
|
-
return __awaiter(this,
|
|
2184
|
+
checkPaymentsForDate(targetDate, channel = 'both', log = logger_1.consoleLogger) {
|
|
2185
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
2109
2186
|
const startOfDay = new Date(targetDate);
|
|
2110
2187
|
startOfDay.setHours(0, 0, 0, 0);
|
|
2111
2188
|
const endOfDay = new Date(targetDate);
|
|
@@ -2156,8 +2233,8 @@ const pgClient = (config) => {
|
|
|
2156
2233
|
}
|
|
2157
2234
|
});
|
|
2158
2235
|
},
|
|
2159
|
-
checkEpochProcessed(
|
|
2160
|
-
return __awaiter(this,
|
|
2236
|
+
checkEpochProcessed(epochId, channel, log = logger_1.consoleLogger) {
|
|
2237
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
2161
2238
|
try {
|
|
2162
2239
|
const result = yield db
|
|
2163
2240
|
.selectFrom('epoch')
|
|
@@ -2177,8 +2254,8 @@ const pgClient = (config) => {
|
|
|
2177
2254
|
}
|
|
2178
2255
|
});
|
|
2179
2256
|
},
|
|
2180
|
-
checkRecentPaymentActivity() {
|
|
2181
|
-
return __awaiter(this,
|
|
2257
|
+
checkRecentPaymentActivity(lookbackHours = 2, channel = 'both', log = logger_1.consoleLogger) {
|
|
2258
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
2182
2259
|
const lookbackTime = new Date(Date.now() - lookbackHours * 60 * 60 * 1000);
|
|
2183
2260
|
const now = new Date();
|
|
2184
2261
|
try {
|