@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.
Files changed (69) hide show
  1. package/lib/cjs/assertSecrets.js +2 -1
  2. package/lib/cjs/assertSecrets.js.map +1 -1
  3. package/lib/cjs/backfiller.js +16 -16
  4. package/lib/cjs/backfiller.js.map +1 -1
  5. package/lib/cjs/burn/burnAnalysis.js +3 -3
  6. package/lib/cjs/burn/burnAnalysis.js.map +1 -1
  7. package/lib/cjs/burn/burnCalculations.js.map +1 -1
  8. package/lib/cjs/client/onchain.js +3 -3
  9. package/lib/cjs/client/onchain.js.map +1 -1
  10. package/lib/cjs/client/pg/base.js +7 -7
  11. package/lib/cjs/client/pg/base.js.map +1 -1
  12. package/lib/cjs/client/pg/v1.js +31 -31
  13. package/lib/cjs/client/pg/v1.js.map +1 -1
  14. package/lib/cjs/client/pg/v2Client.js +186 -114
  15. package/lib/cjs/client/pg/v2Client.js.map +1 -1
  16. package/lib/cjs/client/pg/viewClient.js +6 -6
  17. package/lib/cjs/client/pg/viewClient.js.map +1 -1
  18. package/lib/cjs/client/price.js +3 -3
  19. package/lib/cjs/client/price.js.map +1 -1
  20. package/lib/cjs/client/render.js +10 -10
  21. package/lib/cjs/client/render.js.map +1 -1
  22. package/lib/cjs/client/squads.js +10 -20
  23. package/lib/cjs/client/squads.js.map +1 -1
  24. package/lib/cjs/client/trade.js +12 -15
  25. package/lib/cjs/client/trade.js.map +1 -1
  26. package/lib/cjs/client/wormhole.js +9 -19
  27. package/lib/cjs/client/wormhole.js.map +1 -1
  28. package/lib/cjs/errorReporter.js +1 -1
  29. package/lib/cjs/errorReporter.js.map +1 -1
  30. package/lib/cjs/index.js +7 -17
  31. package/lib/cjs/index.js.map +1 -1
  32. package/lib/esm/src/assertSecrets.js.map +1 -1
  33. package/lib/esm/src/backfiller.js.map +1 -1
  34. package/lib/esm/src/burn/burnAnalysis.js +1 -1
  35. package/lib/esm/src/burn/burnAnalysis.js.map +1 -1
  36. package/lib/esm/src/burn/burnCalculations.js.map +1 -1
  37. package/lib/esm/src/client/onchain.js.map +1 -1
  38. package/lib/esm/src/client/pg/base.js.map +1 -1
  39. package/lib/esm/src/client/pg/v1.js.map +1 -1
  40. package/lib/esm/src/client/pg/v2Client.js +81 -2
  41. package/lib/esm/src/client/pg/v2Client.js.map +1 -1
  42. package/lib/esm/src/client/pg/viewClient.js.map +1 -1
  43. package/lib/esm/src/client/price.js.map +1 -1
  44. package/lib/esm/src/client/render.js.map +1 -1
  45. package/lib/esm/src/client/squads.js.map +1 -1
  46. package/lib/esm/src/client/trade.js +2 -2
  47. package/lib/esm/src/client/trade.js.map +1 -1
  48. package/lib/esm/src/client/wormhole.js.map +1 -1
  49. package/lib/esm/src/errorReporter.js.map +1 -1
  50. package/lib/esm/tsconfig.esm.tsbuildinfo +1 -1
  51. package/lib/types/src/backfiller.d.ts.map +1 -1
  52. package/lib/types/src/burn/burnAnalysis.d.ts.map +1 -1
  53. package/lib/types/src/burn/burnCalculations.d.ts.map +1 -1
  54. package/lib/types/src/client/onchain.d.ts +1 -2
  55. package/lib/types/src/client/onchain.d.ts.map +1 -1
  56. package/lib/types/src/client/pg/base.d.ts.map +1 -1
  57. package/lib/types/src/client/pg/v1.d.ts.map +1 -1
  58. package/lib/types/src/client/pg/v2Client.d.ts +18 -0
  59. package/lib/types/src/client/pg/v2Client.d.ts.map +1 -1
  60. package/lib/types/src/client/pg/viewClient.d.ts.map +1 -1
  61. package/lib/types/src/client/render.d.ts.map +1 -1
  62. package/lib/types/src/client/squads.d.ts.map +1 -1
  63. package/lib/types/src/client/trade.d.ts.map +1 -1
  64. package/lib/types/src/client/wormhole.d.ts +1 -1
  65. package/lib/types/src/client/wormhole.d.ts.map +1 -1
  66. package/lib/types/src/dbTypesV2.d.ts +28 -0
  67. package/lib/types/src/dbTypesV2.d.ts.map +1 -1
  68. package/lib/types/src/errorReporter.d.ts.map +1 -1
  69. 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) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
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 = (db_1, p_1, ...args_1) => __awaiter(void 0, [db_1, p_1, ...args_1], void 0, function* (db, p, log = logger_1.consoleLogger) {
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 = (db_1, p_1, ...args_1) => __awaiter(void 0, [db_1, p_1, ...args_1], void 0, function* (db, p, log = logger_1.consoleLogger) {
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 = (db_1, p_1, ...args_1) => __awaiter(void 0, [db_1, p_1, ...args_1], void 0, function* (db, p, log = logger_1.consoleLogger) {
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 = (db_1, p_1, ...args_1) => __awaiter(void 0, [db_1, p_1, ...args_1], void 0, function* (db, p, log = logger_1.consoleLogger) {
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 = (db_1, f_1, ...args_1) => __awaiter(void 0, [db_1, f_1, ...args_1], void 0, function* (db, f, log = logger_1.consoleLogger) {
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 = (db_1, f_1, ...args_1) => __awaiter(void 0, [db_1, f_1, ...args_1], void 0, function* (db, f, log = logger_1.consoleLogger) {
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 = (db_1, bts_1, ...args_1) => __awaiter(void 0, [db_1, bts_1, ...args_1], void 0, function* (db, bts, log = logger_1.consoleLogger) {
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 = (db_1, ps_1, ...args_1) => __awaiter(void 0, [db_1, ps_1, ...args_1], void 0, function* (db, ps, log = logger_1.consoleLogger) {
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, arguments, void 0, function* (log = logger_1.consoleLogger) {
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(db_1, ps_1) {
418
- return __awaiter(this, arguments, void 0, function* (db, ps, log = logger_1.consoleLogger) {
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(db_1, f_1) {
423
- return __awaiter(this, arguments, void 0, function* (db, f, log = logger_1.consoleLogger) {
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(db_1, f_1) {
480
- return __awaiter(this, arguments, void 0, function* (db, f, log = logger_1.consoleLogger) {
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(db_1, f_1) {
504
- return __awaiter(this, arguments, void 0, function* (db, f, log = logger_1.consoleLogger) {
505
- var _a;
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(f_1) {
573
- return __awaiter(this, arguments, void 0, function* (f, log = logger_1.consoleLogger) {
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(f_1) {
635
- return __awaiter(this, arguments, void 0, function* (f, log = logger_1.consoleLogger) {
636
- var _a, _b, _c, _d, _e;
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
- fetchNodeOperatorEpoch(epochId_1) {
746
- return __awaiter(this, arguments, void 0, function* (epochId, log = logger_1.consoleLogger) {
747
- var _a;
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(db_1, epoch_1) {
798
- return __awaiter(this, arguments, void 0, function* (db, epoch, log = logger_1.consoleLogger) {
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(f_1) {
803
- return __awaiter(this, arguments, void 0, function* (f, log = logger_1.consoleLogger) {
804
- var _a;
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(f_1) {
843
- return __awaiter(this, arguments, void 0, function* (f, log = logger_1.consoleLogger) {
844
- var _a;
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(epochId_1, liabilities_1, jobIds_1, totalRndr_1) {
885
- return __awaiter(this, arguments, void 0, function* (epochId, liabilities, jobIds, totalRndr, log = logger_1.consoleLogger) {
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(jobs_1) {
922
- return __awaiter(this, arguments, void 0, function* (jobs, log = logger_1.consoleLogger) {
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(db_1, p_1) {
946
- return __awaiter(this, arguments, void 0, function* (db, p, log = logger_1.consoleLogger) {
947
- var _a;
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(db_1, p_1) {
979
- return __awaiter(this, arguments, void 0, function* (db, p, log = logger_1.consoleLogger) {
980
- var _a, _b, _c;
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(trx_1, p_1) {
1046
- return __awaiter(this, arguments, void 0, function* (trx, p, log = logger_1.consoleLogger) {
1047
- var _a, _b;
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(trx_1, p_1) {
1149
- return __awaiter(this, arguments, void 0, function* (trx, p, log = logger_1.consoleLogger) {
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(limit_1, lowerRndrThreshold_1, upperRndrThreshold_1) {
1174
- return __awaiter(this, arguments, void 0, function* (limit, lowerRndrThreshold, upperRndrThreshold, log = logger_1.consoleLogger) {
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
- return __awaiter(this, arguments, void 0, function* (log = logger_1.consoleLogger) {
1283
- var _a;
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(db_1, f_1) {
1301
- return __awaiter(this, arguments, void 0, function* (db, f, log = logger_1.consoleLogger) {
1302
- var _a, _b;
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(db_1, f_1) {
1372
- return __awaiter(this, arguments, void 0, function* (db, f, log = logger_1.consoleLogger) {
1373
- var _a, _b;
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(db_1, bts_1) {
1512
- return __awaiter(this, arguments, void 0, function* (db, bts, log = logger_1.consoleLogger) {
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(_a) {
1517
- return __awaiter(this, arguments, void 0, function* ({ solKey, page, }, log = logger_1.consoleLogger) {
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(p_1) {
1604
- return __awaiter(this, arguments, void 0, function* (p, log = logger_1.consoleLogger) {
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(db_1, f_1) {
1642
- return __awaiter(this, arguments, void 0, function* (db, f, log = logger_1.consoleLogger) {
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(db_1, f_1) {
1647
- return __awaiter(this, arguments, void 0, function* (db, f, log = logger_1.consoleLogger) {
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(db_1) {
1652
- return __awaiter(this, arguments, void 0, function* (db, log = logger_1.consoleLogger) {
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(trx_1, p_1) {
1711
- return __awaiter(this, arguments, void 0, function* (trx, p, log = logger_1.consoleLogger) {
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(trx_1, ps_1) {
1732
- return __awaiter(this, arguments, void 0, function* (trx, ps, log = logger_1.consoleLogger) {
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(trx_1, ps_1) {
1770
- return __awaiter(this, arguments, void 0, function* (trx, ps, log = logger_1.consoleLogger) {
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(db_1, p_1) {
1797
- return __awaiter(this, arguments, void 0, function* (db, p, log = logger_1.consoleLogger) {
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(db_1, f_1) {
1816
- return __awaiter(this, arguments, void 0, function* (db, f, log = logger_1.consoleLogger) {
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(db_1, f_1) {
1843
- return __awaiter(this, arguments, void 0, function* (db, f, log = logger_1.consoleLogger) {
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, arguments, void 0, function* (log = logger_1.consoleLogger) {
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(targetDate_1) {
1895
- return __awaiter(this, arguments, void 0, function* (targetDate, channel = 'both', log = logger_1.consoleLogger) {
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(epochId_1, channel_1) {
1947
- return __awaiter(this, arguments, void 0, function* (epochId, channel, log = logger_1.consoleLogger) {
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, arguments, void 0, function* (lookbackHours = 2, channel = 'both', log = logger_1.consoleLogger) {
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 {