@render-foundation/utils 0.0.230 → 0.0.231
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/burn/burnAnalysis.js +3 -3
- package/lib/cjs/burn/burnAnalysis.js.map +1 -1
- package/lib/cjs/burn/burnCalculations.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 +186 -114
- 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 +3 -3
- 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/esm/src/assertSecrets.js.map +1 -1
- package/lib/esm/src/backfiller.js.map +1 -1
- package/lib/esm/src/burn/burnAnalysis.js +1 -1
- package/lib/esm/src/burn/burnAnalysis.js.map +1 -1
- package/lib/esm/src/burn/burnCalculations.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 +81 -2
- 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/burn/burnAnalysis.d.ts.map +1 -1
- package/lib/types/src/burn/burnCalculations.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 +18 -0
- 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 +28 -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.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.TX_BURN_ADJUSTMENT_TABLE = exports.JOB_BURN_ADJUSTMENT_TABLE = exports.NETWORK_REVENUE_TABLE = exports.BRIDGE_TRANSFER_TABLE = exports.BURN_TABLE = exports.JOB_TABLE = exports.JOB_ID_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.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.TX_BURN_ADJUSTMENT_TABLE = exports.JOB_BURN_ADJUSTMENT_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");
|
|
@@ -57,6 +47,8 @@ exports.MANUAL_BURN_TABLE = 'manual_burn';
|
|
|
57
47
|
exports.ENTITY_TABLE = 'entity';
|
|
58
48
|
exports.SOL_TRANSFER_TABLE = 'sol_transfer1';
|
|
59
49
|
exports.LIABILITY_TABLE = 'liability';
|
|
50
|
+
exports.LIABILITY_ADJUSTMENT_TABLE = 'liability_adjustment';
|
|
51
|
+
exports.LIABILITY_ADJUSTMENT_BATCH_TABLE = 'liability_adjustment_batch';
|
|
60
52
|
exports.JOB_ID_TABLE = 'job_id';
|
|
61
53
|
exports.JOB_TABLE = 'job';
|
|
62
54
|
exports.BURN_TABLE = 'burn';
|
|
@@ -103,7 +95,7 @@ const pgClient = (config) => {
|
|
|
103
95
|
const db = new kysely_1.Kysely({
|
|
104
96
|
dialect,
|
|
105
97
|
});
|
|
106
|
-
const getOrInsertEntity = (
|
|
98
|
+
const getOrInsertEntity = (db, p, log = logger_1.consoleLogger) => __awaiter(void 0, void 0, void 0, function* () {
|
|
107
99
|
const res = (yield db
|
|
108
100
|
.selectFrom(exports.ENTITY_TABLE)
|
|
109
101
|
.select('id')
|
|
@@ -124,7 +116,7 @@ const pgClient = (config) => {
|
|
|
124
116
|
log.debug(`inserted entity ${id}`);
|
|
125
117
|
return id;
|
|
126
118
|
});
|
|
127
|
-
const getOrInsertTx = (
|
|
119
|
+
const getOrInsertTx = (db, p, log = logger_1.consoleLogger) => __awaiter(void 0, void 0, void 0, function* () {
|
|
128
120
|
const res = yield db
|
|
129
121
|
.selectFrom(exports.SOL_TX_TABLE)
|
|
130
122
|
.select('id')
|
|
@@ -146,7 +138,7 @@ const pgClient = (config) => {
|
|
|
146
138
|
log.debug(`inserted tx ${id}`);
|
|
147
139
|
return id;
|
|
148
140
|
});
|
|
149
|
-
const getOrInsertEpoch = (
|
|
141
|
+
const getOrInsertEpoch = (db, p, log = logger_1.consoleLogger) => __awaiter(void 0, void 0, void 0, function* () {
|
|
150
142
|
const res = yield db
|
|
151
143
|
.selectFrom(exports.EPOCH_TABLE)
|
|
152
144
|
.select('id')
|
|
@@ -174,7 +166,7 @@ const pgClient = (config) => {
|
|
|
174
166
|
log.debug(`inserted epoch ${id}`);
|
|
175
167
|
return id;
|
|
176
168
|
});
|
|
177
|
-
const getCurrentUserGrantSpend = (
|
|
169
|
+
const getCurrentUserGrantSpend = (db, p, log = logger_1.consoleLogger) => __awaiter(void 0, void 0, void 0, function* () {
|
|
178
170
|
var _a;
|
|
179
171
|
const res = yield db
|
|
180
172
|
.selectFrom(exports.CURRENT_USER_GRANT_SPEND_TABLE)
|
|
@@ -204,7 +196,7 @@ const pgClient = (config) => {
|
|
|
204
196
|
.executeTakeFirst());
|
|
205
197
|
log.info(`set ${res.numUpdatedRows} rows. channel: ${p.channel}, ui: ${p.uiEpochId} -> totalRndr ${totalRndr} `);
|
|
206
198
|
});
|
|
207
|
-
const fetchJobs1 = (
|
|
199
|
+
const fetchJobs1 = (db, f, log = logger_1.consoleLogger) => __awaiter(void 0, void 0, void 0, function* () {
|
|
208
200
|
let q = db.selectFrom('job').selectAll();
|
|
209
201
|
//.where('job.burn_id', 'is not', null)
|
|
210
202
|
if (f.completedAtAfter) {
|
|
@@ -234,7 +226,7 @@ const pgClient = (config) => {
|
|
|
234
226
|
insertedAt: r.inserted_at,
|
|
235
227
|
}));
|
|
236
228
|
});
|
|
237
|
-
const fetchJobs2 = (
|
|
229
|
+
const fetchJobs2 = (db, f, log = logger_1.consoleLogger) => __awaiter(void 0, void 0, void 0, function* () {
|
|
238
230
|
let q = db.selectFrom('job').selectAll();
|
|
239
231
|
//.where('job.burn_id', 'is not', null)
|
|
240
232
|
if (f.completedAtAfter) {
|
|
@@ -268,7 +260,7 @@ const pgClient = (config) => {
|
|
|
268
260
|
});
|
|
269
261
|
});
|
|
270
262
|
});
|
|
271
|
-
const createBridgeTransfers = (
|
|
263
|
+
const createBridgeTransfers = (db, bts, log = logger_1.consoleLogger) => __awaiter(void 0, void 0, void 0, function* () {
|
|
272
264
|
const sequenceNumbers = [];
|
|
273
265
|
const dbEpochIds = [];
|
|
274
266
|
for (const bt of bts) {
|
|
@@ -312,7 +304,7 @@ const pgClient = (config) => {
|
|
|
312
304
|
}
|
|
313
305
|
return { sequenceNumbers: sequenceNumbers };
|
|
314
306
|
});
|
|
315
|
-
const createPayments = (
|
|
307
|
+
const createPayments = (db, ps, log = logger_1.consoleLogger) => __awaiter(void 0, void 0, void 0, function* () {
|
|
316
308
|
const ids = [];
|
|
317
309
|
const epochDbIds = [];
|
|
318
310
|
for (const p of ps) {
|
|
@@ -409,18 +401,18 @@ const pgClient = (config) => {
|
|
|
409
401
|
rollback: () => { },
|
|
410
402
|
trx: db,
|
|
411
403
|
},
|
|
412
|
-
startTransaction() {
|
|
413
|
-
return __awaiter(this,
|
|
404
|
+
startTransaction(log = logger_1.consoleLogger) {
|
|
405
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
414
406
|
return (0, base_2.begin)(db, log);
|
|
415
407
|
});
|
|
416
408
|
},
|
|
417
|
-
createPayments(
|
|
418
|
-
return __awaiter(this,
|
|
409
|
+
createPayments(db, ps, log = logger_1.consoleLogger) {
|
|
410
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
419
411
|
return createPayments(db.trx, ps, log);
|
|
420
412
|
});
|
|
421
413
|
},
|
|
422
|
-
fetchTransfers(
|
|
423
|
-
return __awaiter(this,
|
|
414
|
+
fetchTransfers(db, f, log = logger_1.consoleLogger) {
|
|
415
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
424
416
|
let lastId = undefined;
|
|
425
417
|
if (f.cursor) {
|
|
426
418
|
lastId = atob(f.cursor);
|
|
@@ -476,8 +468,8 @@ const pgClient = (config) => {
|
|
|
476
468
|
};
|
|
477
469
|
});
|
|
478
470
|
},
|
|
479
|
-
fetchEpochs(
|
|
480
|
-
return __awaiter(this,
|
|
471
|
+
fetchEpochs(db, f, log = logger_1.consoleLogger) {
|
|
472
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
481
473
|
let q = db.trx.selectFrom(exports.EPOCH_TABLE).selectAll();
|
|
482
474
|
if (f.channels) {
|
|
483
475
|
q = q.where('channel', 'in', f.channels);
|
|
@@ -500,9 +492,9 @@ const pgClient = (config) => {
|
|
|
500
492
|
}));
|
|
501
493
|
});
|
|
502
494
|
},
|
|
503
|
-
fetchLiabilities(
|
|
504
|
-
|
|
505
|
-
|
|
495
|
+
fetchLiabilities(db, f, log = logger_1.consoleLogger) {
|
|
496
|
+
var _a;
|
|
497
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
506
498
|
let offset = 0;
|
|
507
499
|
let orderBy = (_a = f.orderBy) !== null && _a !== void 0 ? _a : 'epoch.ui,liability.id';
|
|
508
500
|
if (f.cursor) {
|
|
@@ -569,8 +561,8 @@ const pgClient = (config) => {
|
|
|
569
561
|
};
|
|
570
562
|
});
|
|
571
563
|
},
|
|
572
|
-
getLiabilitiesAndTransfers(
|
|
573
|
-
return __awaiter(this,
|
|
564
|
+
getLiabilitiesAndTransfers(f, log = logger_1.consoleLogger) {
|
|
565
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
574
566
|
let lq = db
|
|
575
567
|
.selectFrom(exports.LIABILITY_TABLE)
|
|
576
568
|
.selectAll()
|
|
@@ -631,9 +623,9 @@ const pgClient = (config) => {
|
|
|
631
623
|
return { transfers, liabilities, epochs: Object.values(epochs) };
|
|
632
624
|
});
|
|
633
625
|
},
|
|
634
|
-
getOutstanding(
|
|
635
|
-
|
|
636
|
-
|
|
626
|
+
getOutstanding(f, log = logger_1.consoleLogger) {
|
|
627
|
+
var _a, _b, _c, _d, _e;
|
|
628
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
637
629
|
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)'}`);
|
|
638
630
|
let epochUi;
|
|
639
631
|
let epochEndTime;
|
|
@@ -719,9 +711,36 @@ const pgClient = (config) => {
|
|
|
719
711
|
}
|
|
720
712
|
return b.as('x');
|
|
721
713
|
}, (join) => join.onRef('y.sol_key', '=', 'x.sol_key'))
|
|
714
|
+
// Standing per-wallet/channel corrections (migration 36). NO epoch filter — an adjustment is
|
|
715
|
+
// a permanent delta on outstanding, not tied to a payout window; payments net it via `payed`.
|
|
716
|
+
.fullJoin((eb) => {
|
|
717
|
+
let b = eb
|
|
718
|
+
.selectFrom(exports.LIABILITY_ADJUSTMENT_TABLE)
|
|
719
|
+
.select(({ fn }) => fn.sum(`amount_adjustment`).as('adj'))
|
|
720
|
+
.innerJoin(exports.ENTITY_TABLE, `${exports.LIABILITY_ADJUSTMENT_TABLE}.entity_id`, 'entity.id')
|
|
721
|
+
.select(['entity.sol_key'])
|
|
722
|
+
.groupBy('entity.sol_key');
|
|
723
|
+
if (f.banned) {
|
|
724
|
+
b = b.where('entity.banned', '=', true);
|
|
725
|
+
}
|
|
726
|
+
else {
|
|
727
|
+
b = b.where('entity.banned', '=', false);
|
|
728
|
+
}
|
|
729
|
+
if (f.channels && f.channels.length > 0) {
|
|
730
|
+
b = b.where((eb) => eb.or(f.channels.map((c) => eb('liability_adjustment.channel', '=', c))));
|
|
731
|
+
}
|
|
732
|
+
else {
|
|
733
|
+
b = b.where((eb) => eb.or([
|
|
734
|
+
eb('liability_adjustment.channel', '=', 'node_operator'),
|
|
735
|
+
eb('liability_adjustment.channel', '=', 'availability'),
|
|
736
|
+
]));
|
|
737
|
+
}
|
|
738
|
+
return b.as('a');
|
|
739
|
+
}, (join) => join.on((0, kysely_1.sql) `"a"."sol_key" = coalesce("y"."sol_key", "x"."sol_key")`))
|
|
722
740
|
.select(({ fn }) => [
|
|
723
|
-
fn.coalesce('y.sol_key', 'x.sol_key').as('sol_key'),
|
|
724
|
-
(0, kysely_1.sql) `${fn.coalesce(`x.due`, (0, kysely_1.sql) `0`)}
|
|
741
|
+
fn.coalesce('y.sol_key', 'x.sol_key', 'a.sol_key').as('sol_key'),
|
|
742
|
+
(0, kysely_1.sql) `${fn.coalesce(`x.due`, (0, kysely_1.sql) `0`)} +
|
|
743
|
+
${fn.coalesce(`a.adj`, (0, kysely_1.sql) `0`)} -
|
|
725
744
|
${fn.coalesce(`y.payed`, (0, kysely_1.sql) `0`)}`.as('out'),
|
|
726
745
|
])
|
|
727
746
|
.as('z'))
|
|
@@ -742,9 +761,62 @@ const pgClient = (config) => {
|
|
|
742
761
|
return out;
|
|
743
762
|
});
|
|
744
763
|
},
|
|
745
|
-
|
|
746
|
-
return __awaiter(this,
|
|
747
|
-
|
|
764
|
+
addLiabilityAdjustments(batch, rows, log = logger_1.consoleLogger) {
|
|
765
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
766
|
+
return yield db.transaction().execute((trx) => __awaiter(this, void 0, void 0, function* () {
|
|
767
|
+
var _a;
|
|
768
|
+
// Upsert the batch by its label (idempotent re-runs; label is the run identity).
|
|
769
|
+
const b = yield trx
|
|
770
|
+
.insertInto(exports.LIABILITY_ADJUSTMENT_BATCH_TABLE)
|
|
771
|
+
.values({
|
|
772
|
+
label: batch.label,
|
|
773
|
+
description: batch.description,
|
|
774
|
+
created_by: batch.createdBy,
|
|
775
|
+
})
|
|
776
|
+
.onConflict((oc) => oc.column('label').doUpdateSet({
|
|
777
|
+
description: batch.description,
|
|
778
|
+
created_by: batch.createdBy,
|
|
779
|
+
}))
|
|
780
|
+
.returning('id')
|
|
781
|
+
.executeTakeFirstOrThrow();
|
|
782
|
+
const batchId = BigInt(b.id);
|
|
783
|
+
let inserted = 0;
|
|
784
|
+
let skipped = 0;
|
|
785
|
+
let net = BigInt(0);
|
|
786
|
+
let positive = BigInt(0);
|
|
787
|
+
let negative = BigInt(0);
|
|
788
|
+
for (const r of rows) {
|
|
789
|
+
const entityId = yield getOrInsertEntity(trx, { solKey: r.solKey }, log);
|
|
790
|
+
const res = yield trx
|
|
791
|
+
.insertInto(exports.LIABILITY_ADJUSTMENT_TABLE)
|
|
792
|
+
.values({
|
|
793
|
+
entity_id: entityId,
|
|
794
|
+
channel: r.channel,
|
|
795
|
+
amount_adjustment: r.amountAdjustment,
|
|
796
|
+
batch_id: batchId,
|
|
797
|
+
})
|
|
798
|
+
// unique (entity_id, channel, batch_id) → a re-run of the same batch is a no-op
|
|
799
|
+
.onConflict((oc) => oc.columns(['entity_id', 'channel', 'batch_id']).doNothing())
|
|
800
|
+
.executeTakeFirst();
|
|
801
|
+
if (((_a = res.numInsertedOrUpdatedRows) !== null && _a !== void 0 ? _a : BigInt(0)) > BigInt(0))
|
|
802
|
+
inserted++;
|
|
803
|
+
else
|
|
804
|
+
skipped++;
|
|
805
|
+
net += r.amountAdjustment;
|
|
806
|
+
if (r.amountAdjustment > BigInt(0))
|
|
807
|
+
positive += r.amountAdjustment;
|
|
808
|
+
else
|
|
809
|
+
negative += r.amountAdjustment;
|
|
810
|
+
}
|
|
811
|
+
log.info(`liability_adjustment batch '${batch.label}' (id ${batchId}): ` +
|
|
812
|
+
`inserted ${inserted}, skipped ${skipped}, net ${net} (+${positive} / ${negative})`);
|
|
813
|
+
return { batchId, inserted, skipped, net, positive, negative };
|
|
814
|
+
}));
|
|
815
|
+
});
|
|
816
|
+
},
|
|
817
|
+
fetchNodeOperatorEpoch(epochId, log = logger_1.consoleLogger) {
|
|
818
|
+
var _a;
|
|
819
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
748
820
|
const q = db
|
|
749
821
|
.selectFrom(exports.JOB_ID_TABLE)
|
|
750
822
|
.innerJoin(exports.EPOCH_TABLE, 'epoch.id', 'job_id.epoch_id')
|
|
@@ -794,14 +866,14 @@ const pgClient = (config) => {
|
|
|
794
866
|
};
|
|
795
867
|
});
|
|
796
868
|
},
|
|
797
|
-
insertEpoch(
|
|
798
|
-
return __awaiter(this,
|
|
869
|
+
insertEpoch(db, epoch, log = logger_1.consoleLogger) {
|
|
870
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
799
871
|
yield getOrInsertEpoch(db.trx, Object.assign(Object.assign({}, epoch), { uiEpochId: epoch.ui }), log);
|
|
800
872
|
});
|
|
801
873
|
},
|
|
802
|
-
getEpoch(
|
|
803
|
-
|
|
804
|
-
|
|
874
|
+
getEpoch(f, log = logger_1.consoleLogger) {
|
|
875
|
+
var _a;
|
|
876
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
805
877
|
const now = new Date(Date.now());
|
|
806
878
|
try {
|
|
807
879
|
let q = db
|
|
@@ -839,9 +911,9 @@ const pgClient = (config) => {
|
|
|
839
911
|
}
|
|
840
912
|
});
|
|
841
913
|
},
|
|
842
|
-
getLatestNodeOperatorEpoch(
|
|
843
|
-
|
|
844
|
-
|
|
914
|
+
getLatestNodeOperatorEpoch(f, log = logger_1.consoleLogger) {
|
|
915
|
+
var _a;
|
|
916
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
845
917
|
const now = new Date(Date.now());
|
|
846
918
|
try {
|
|
847
919
|
let q = db
|
|
@@ -881,8 +953,8 @@ const pgClient = (config) => {
|
|
|
881
953
|
}
|
|
882
954
|
});
|
|
883
955
|
},
|
|
884
|
-
saveNodeOperatorEpoch(
|
|
885
|
-
return __awaiter(this,
|
|
956
|
+
saveNodeOperatorEpoch(epochId, liabilities, jobIds, totalRndr, log = logger_1.consoleLogger) {
|
|
957
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
886
958
|
yield db
|
|
887
959
|
.transaction()
|
|
888
960
|
.setIsolationLevel('repeatable read')
|
|
@@ -918,8 +990,8 @@ const pgClient = (config) => {
|
|
|
918
990
|
return;
|
|
919
991
|
});
|
|
920
992
|
},
|
|
921
|
-
produceBurnedJobs(
|
|
922
|
-
return __awaiter(this,
|
|
993
|
+
produceBurnedJobs(jobs, log = logger_1.consoleLogger) {
|
|
994
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
923
995
|
yield db.transaction().execute((trx) => __awaiter(this, void 0, void 0, function* () {
|
|
924
996
|
var _a;
|
|
925
997
|
let num = BigInt(0);
|
|
@@ -942,9 +1014,9 @@ const pgClient = (config) => {
|
|
|
942
1014
|
}));
|
|
943
1015
|
});
|
|
944
1016
|
},
|
|
945
|
-
markJobsBurntWithGrant(
|
|
946
|
-
|
|
947
|
-
|
|
1017
|
+
markJobsBurntWithGrant(db, p, log = logger_1.consoleLogger) {
|
|
1018
|
+
var _a;
|
|
1019
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
948
1020
|
const solTxId = yield getOrInsertTx(db.trx, { sig: p.tx.sig, executedAt: p.tx.executedAt }, log);
|
|
949
1021
|
const { id } = yield db.trx
|
|
950
1022
|
.insertInto(exports.GRANT_BURN_TABLE)
|
|
@@ -975,9 +1047,9 @@ const pgClient = (config) => {
|
|
|
975
1047
|
return;
|
|
976
1048
|
});
|
|
977
1049
|
},
|
|
978
|
-
insertGrantSpend(
|
|
979
|
-
|
|
980
|
-
|
|
1050
|
+
insertGrantSpend(db, p, log = logger_1.consoleLogger) {
|
|
1051
|
+
var _a, _b, _c;
|
|
1052
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
981
1053
|
const existing = yield getCurrentUserGrantSpend(db.trx, { userId: p.userId }, log);
|
|
982
1054
|
const diff = {
|
|
983
1055
|
render_spent: ((_a = existing === null || existing === void 0 ? void 0 : existing.renderSpent) !== null && _a !== void 0 ? _a : BigInt(0)) + p.renderSpentDelta,
|
|
@@ -1042,9 +1114,9 @@ const pgClient = (config) => {
|
|
|
1042
1114
|
}
|
|
1043
1115
|
});
|
|
1044
1116
|
},
|
|
1045
|
-
markJobsBurnt(
|
|
1046
|
-
|
|
1047
|
-
|
|
1117
|
+
markJobsBurnt(trx, p, log = logger_1.consoleLogger) {
|
|
1118
|
+
var _a, _b;
|
|
1119
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1048
1120
|
if (!p.buyBurn && !p.grantBurn) {
|
|
1049
1121
|
throw new Error('no buyBurn or grantBurn');
|
|
1050
1122
|
}
|
|
@@ -1145,8 +1217,8 @@ const pgClient = (config) => {
|
|
|
1145
1217
|
return { grantBurnId, buyBurnId };
|
|
1146
1218
|
});
|
|
1147
1219
|
},
|
|
1148
|
-
markJobsBurned(
|
|
1149
|
-
return __awaiter(this,
|
|
1220
|
+
markJobsBurned(trx, p, log = logger_1.consoleLogger) {
|
|
1221
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1150
1222
|
let { markedAt, solTx } = p;
|
|
1151
1223
|
let res = yield trx.trx
|
|
1152
1224
|
.updateTable(exports.BURN_TABLE)
|
|
@@ -1170,8 +1242,8 @@ const pgClient = (config) => {
|
|
|
1170
1242
|
}
|
|
1171
1243
|
});
|
|
1172
1244
|
},
|
|
1173
|
-
consumeAndLockBurnJobs(
|
|
1174
|
-
return __awaiter(this,
|
|
1245
|
+
consumeAndLockBurnJobs(limit, lowerRndrThreshold, upperRndrThreshold, log = logger_1.consoleLogger) {
|
|
1246
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1175
1247
|
const trx = yield (0, base_2.begin)(db, log);
|
|
1176
1248
|
const q = trx.trx
|
|
1177
1249
|
.selectFrom(trx.trx
|
|
@@ -1278,9 +1350,9 @@ const pgClient = (config) => {
|
|
|
1278
1350
|
};
|
|
1279
1351
|
});
|
|
1280
1352
|
},
|
|
1281
|
-
incrBuyBurnMetrics() {
|
|
1282
|
-
|
|
1283
|
-
|
|
1353
|
+
incrBuyBurnMetrics(log = logger_1.consoleLogger) {
|
|
1354
|
+
var _a;
|
|
1355
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1284
1356
|
const res = yield db
|
|
1285
1357
|
.selectFrom(exports.JOB_TABLE)
|
|
1286
1358
|
.select('inserted_at')
|
|
@@ -1297,9 +1369,9 @@ const pgClient = (config) => {
|
|
|
1297
1369
|
};
|
|
1298
1370
|
});
|
|
1299
1371
|
},
|
|
1300
|
-
fetchBurns(
|
|
1301
|
-
|
|
1302
|
-
|
|
1372
|
+
fetchBurns(db, f, log = logger_1.consoleLogger) {
|
|
1373
|
+
var _a, _b;
|
|
1374
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1303
1375
|
let q = db.trx
|
|
1304
1376
|
.selectFrom('burn')
|
|
1305
1377
|
.selectAll('burn')
|
|
@@ -1368,9 +1440,9 @@ const pgClient = (config) => {
|
|
|
1368
1440
|
return burns;
|
|
1369
1441
|
});
|
|
1370
1442
|
},
|
|
1371
|
-
fetchBurnsAndGrants(
|
|
1372
|
-
|
|
1373
|
-
|
|
1443
|
+
fetchBurnsAndGrants(db, f, log = logger_1.consoleLogger) {
|
|
1444
|
+
var _a, _b;
|
|
1445
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1374
1446
|
// Build a unified query to get all transactions with both buy burns and grant burns
|
|
1375
1447
|
let baseQuery = db.trx
|
|
1376
1448
|
.selectFrom('sol_tx')
|
|
@@ -1508,13 +1580,13 @@ const pgClient = (config) => {
|
|
|
1508
1580
|
return groupedBurns;
|
|
1509
1581
|
});
|
|
1510
1582
|
},
|
|
1511
|
-
createBridgeTransfers(
|
|
1512
|
-
return __awaiter(this,
|
|
1583
|
+
createBridgeTransfers(db, bts, log = logger_1.consoleLogger) {
|
|
1584
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1513
1585
|
return createBridgeTransfers(db.trx, bts, log);
|
|
1514
1586
|
});
|
|
1515
1587
|
},
|
|
1516
|
-
getBridgeTransfers(
|
|
1517
|
-
return __awaiter(this,
|
|
1588
|
+
getBridgeTransfers({ solKey, page, }, log = logger_1.consoleLogger) {
|
|
1589
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1518
1590
|
let q = db
|
|
1519
1591
|
.selectFrom(exports.BRIDGE_TRANSFER_TABLE)
|
|
1520
1592
|
.innerJoin(exports.EPOCH_TABLE, 'epoch.id', 'bridge_transfer.epoch_id')
|
|
@@ -1591,8 +1663,8 @@ const pgClient = (config) => {
|
|
|
1591
1663
|
});
|
|
1592
1664
|
},
|
|
1593
1665
|
getTotalBurned(db) {
|
|
1666
|
+
var _a, _b;
|
|
1594
1667
|
return __awaiter(this, void 0, void 0, function* () {
|
|
1595
|
-
var _a, _b;
|
|
1596
1668
|
const total = yield db.trx
|
|
1597
1669
|
.selectFrom('burn')
|
|
1598
1670
|
.select(({ fn }) => fn.sum('burned').as('total_burned'))
|
|
@@ -1600,8 +1672,8 @@ const pgClient = (config) => {
|
|
|
1600
1672
|
return BigInt((_b = (_a = total[0]) === null || _a === void 0 ? void 0 : _a.total_burned) !== null && _b !== void 0 ? _b : 0);
|
|
1601
1673
|
});
|
|
1602
1674
|
},
|
|
1603
|
-
insertBurn(
|
|
1604
|
-
return __awaiter(this,
|
|
1675
|
+
insertBurn(p, log = logger_1.consoleLogger) {
|
|
1676
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1605
1677
|
yield db.transaction().execute((trx) => __awaiter(this, void 0, void 0, function* () {
|
|
1606
1678
|
var _a;
|
|
1607
1679
|
const solTxId = yield getOrInsertTx(trx, { sig: p.solTx, executedAt: p.executedAt }, log);
|
|
@@ -1638,18 +1710,18 @@ const pgClient = (config) => {
|
|
|
1638
1710
|
}));
|
|
1639
1711
|
});
|
|
1640
1712
|
},
|
|
1641
|
-
fetchJobs(
|
|
1642
|
-
return __awaiter(this,
|
|
1713
|
+
fetchJobs(db, f, log = logger_1.consoleLogger) {
|
|
1714
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1643
1715
|
return yield fetchJobs1(db.trx, f, log);
|
|
1644
1716
|
});
|
|
1645
1717
|
},
|
|
1646
|
-
fetchJobsWithGrantValues(
|
|
1647
|
-
return __awaiter(this,
|
|
1718
|
+
fetchJobsWithGrantValues(db, f, log = logger_1.consoleLogger) {
|
|
1719
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1648
1720
|
return yield fetchJobs2(db.trx, f, log);
|
|
1649
1721
|
});
|
|
1650
1722
|
},
|
|
1651
|
-
fetchLiabilityEpochs(
|
|
1652
|
-
return __awaiter(this,
|
|
1723
|
+
fetchLiabilityEpochs(db, log = logger_1.consoleLogger) {
|
|
1724
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1653
1725
|
const q = db.trx
|
|
1654
1726
|
.selectFrom(exports.LIABILITY_TABLE)
|
|
1655
1727
|
.select(({ fn }) => [
|
|
@@ -1707,8 +1779,8 @@ const pgClient = (config) => {
|
|
|
1707
1779
|
}));
|
|
1708
1780
|
});
|
|
1709
1781
|
},
|
|
1710
|
-
createTxBurnAdjustment(
|
|
1711
|
-
return __awaiter(this,
|
|
1782
|
+
createTxBurnAdjustment(trx, p, log = logger_1.consoleLogger) {
|
|
1783
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1712
1784
|
// Idempotent per sol_tx_id (unique) — a re-run for the same bad tx is a no-op.
|
|
1713
1785
|
const row = yield trx.trx
|
|
1714
1786
|
.insertInto(exports.TX_BURN_ADJUSTMENT_TABLE)
|
|
@@ -1728,8 +1800,8 @@ const pgClient = (config) => {
|
|
|
1728
1800
|
return Number(row.id);
|
|
1729
1801
|
});
|
|
1730
1802
|
},
|
|
1731
|
-
getJobBurnAdjustments(
|
|
1732
|
-
return __awaiter(this,
|
|
1803
|
+
getJobBurnAdjustments(trx, ps, log = logger_1.consoleLogger) {
|
|
1804
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1733
1805
|
if (!ps.toFill)
|
|
1734
1806
|
return [];
|
|
1735
1807
|
const q = trx.trx
|
|
@@ -1766,8 +1838,8 @@ const pgClient = (config) => {
|
|
|
1766
1838
|
.filter((a) => a.adjusted < a.downAdjToBurn);
|
|
1767
1839
|
});
|
|
1768
1840
|
},
|
|
1769
|
-
getTxBurnAdjustments(
|
|
1770
|
-
return __awaiter(this,
|
|
1841
|
+
getTxBurnAdjustments(trx, ps, log = logger_1.consoleLogger) {
|
|
1842
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1771
1843
|
if (!ps.toFill)
|
|
1772
1844
|
return [];
|
|
1773
1845
|
const q = trx.trx
|
|
@@ -1793,8 +1865,8 @@ const pgClient = (config) => {
|
|
|
1793
1865
|
.filter((a) => a.consumed < a.surplusRender);
|
|
1794
1866
|
});
|
|
1795
1867
|
},
|
|
1796
|
-
insertPolygonUpgrade(
|
|
1797
|
-
return __awaiter(this,
|
|
1868
|
+
insertPolygonUpgrade(db, p, log = logger_1.consoleLogger) {
|
|
1869
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1798
1870
|
const solTxId = yield getOrInsertTx(db.trx, {
|
|
1799
1871
|
sig: p.solTx.sig,
|
|
1800
1872
|
executedAt: p.solTx.executedAt,
|
|
@@ -1812,8 +1884,8 @@ const pgClient = (config) => {
|
|
|
1812
1884
|
return;
|
|
1813
1885
|
});
|
|
1814
1886
|
},
|
|
1815
|
-
fetchPolygonUpgrades(
|
|
1816
|
-
return __awaiter(this,
|
|
1887
|
+
fetchPolygonUpgrades(db, f, log = logger_1.consoleLogger) {
|
|
1888
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1817
1889
|
let query = db.trx
|
|
1818
1890
|
.selectFrom('polygon_upgrade')
|
|
1819
1891
|
.selectAll('polygon_upgrade')
|
|
@@ -1839,13 +1911,13 @@ const pgClient = (config) => {
|
|
|
1839
1911
|
}));
|
|
1840
1912
|
});
|
|
1841
1913
|
},
|
|
1842
|
-
getCurrentUserGrantSpend(
|
|
1843
|
-
return __awaiter(this,
|
|
1914
|
+
getCurrentUserGrantSpend(db, f, log = logger_1.consoleLogger) {
|
|
1915
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1844
1916
|
return yield getCurrentUserGrantSpend(db.trx, f, log);
|
|
1845
1917
|
});
|
|
1846
1918
|
},
|
|
1847
|
-
deleteAll() {
|
|
1848
|
-
return __awaiter(this,
|
|
1919
|
+
deleteAll(log = logger_1.consoleLogger) {
|
|
1920
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1849
1921
|
if (config.database.includes('render')) {
|
|
1850
1922
|
throw new Error('cannot nuke from deployed database. call from tests only');
|
|
1851
1923
|
}
|
|
@@ -1891,8 +1963,8 @@ const pgClient = (config) => {
|
|
|
1891
1963
|
}
|
|
1892
1964
|
});
|
|
1893
1965
|
},
|
|
1894
|
-
checkPaymentsForDate(
|
|
1895
|
-
return __awaiter(this,
|
|
1966
|
+
checkPaymentsForDate(targetDate, channel = 'both', log = logger_1.consoleLogger) {
|
|
1967
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1896
1968
|
const startOfDay = new Date(targetDate);
|
|
1897
1969
|
startOfDay.setHours(0, 0, 0, 0);
|
|
1898
1970
|
const endOfDay = new Date(targetDate);
|
|
@@ -1943,8 +2015,8 @@ const pgClient = (config) => {
|
|
|
1943
2015
|
}
|
|
1944
2016
|
});
|
|
1945
2017
|
},
|
|
1946
|
-
checkEpochProcessed(
|
|
1947
|
-
return __awaiter(this,
|
|
2018
|
+
checkEpochProcessed(epochId, channel, log = logger_1.consoleLogger) {
|
|
2019
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1948
2020
|
try {
|
|
1949
2021
|
const result = yield db
|
|
1950
2022
|
.selectFrom('epoch')
|
|
@@ -1964,8 +2036,8 @@ const pgClient = (config) => {
|
|
|
1964
2036
|
}
|
|
1965
2037
|
});
|
|
1966
2038
|
},
|
|
1967
|
-
checkRecentPaymentActivity() {
|
|
1968
|
-
return __awaiter(this,
|
|
2039
|
+
checkRecentPaymentActivity(lookbackHours = 2, channel = 'both', log = logger_1.consoleLogger) {
|
|
2040
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1969
2041
|
const lookbackTime = new Date(Date.now() - lookbackHours * 60 * 60 * 1000);
|
|
1970
2042
|
const now = new Date();
|
|
1971
2043
|
try {
|