@render-foundation/utils 0.0.230 → 0.0.232-beta.0

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 (83) 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/client/dispersed.js +123 -0
  6. package/lib/cjs/client/dispersed.js.map +1 -0
  7. package/lib/cjs/client/onchain.js +3 -3
  8. package/lib/cjs/client/onchain.js.map +1 -1
  9. package/lib/cjs/client/pg/base.js +7 -7
  10. package/lib/cjs/client/pg/base.js.map +1 -1
  11. package/lib/cjs/client/pg/v1.js +31 -31
  12. package/lib/cjs/client/pg/v1.js.map +1 -1
  13. package/lib/cjs/client/pg/v2Client.js +216 -244
  14. package/lib/cjs/client/pg/v2Client.js.map +1 -1
  15. package/lib/cjs/client/pg/viewClient.js +6 -6
  16. package/lib/cjs/client/pg/viewClient.js.map +1 -1
  17. package/lib/cjs/client/price.js +3 -3
  18. package/lib/cjs/client/price.js.map +1 -1
  19. package/lib/cjs/client/render.js +10 -10
  20. package/lib/cjs/client/render.js.map +1 -1
  21. package/lib/cjs/client/squads.js +10 -20
  22. package/lib/cjs/client/squads.js.map +1 -1
  23. package/lib/cjs/client/trade.js +12 -15
  24. package/lib/cjs/client/trade.js.map +1 -1
  25. package/lib/cjs/client/wormhole.js +9 -19
  26. package/lib/cjs/client/wormhole.js.map +1 -1
  27. package/lib/cjs/errorReporter.js +1 -1
  28. package/lib/cjs/errorReporter.js.map +1 -1
  29. package/lib/cjs/index.js +12 -19
  30. package/lib/cjs/index.js.map +1 -1
  31. package/lib/esm/src/assertSecrets.js.map +1 -1
  32. package/lib/esm/src/backfiller.js.map +1 -1
  33. package/lib/esm/src/client/dispersed.js +108 -0
  34. package/lib/esm/src/client/dispersed.js.map +1 -0
  35. package/lib/esm/src/client/onchain.js.map +1 -1
  36. package/lib/esm/src/client/pg/base.js.map +1 -1
  37. package/lib/esm/src/client/pg/v1.js.map +1 -1
  38. package/lib/esm/src/client/pg/v2Client.js +107 -133
  39. package/lib/esm/src/client/pg/v2Client.js.map +1 -1
  40. package/lib/esm/src/client/pg/viewClient.js.map +1 -1
  41. package/lib/esm/src/client/price.js.map +1 -1
  42. package/lib/esm/src/client/render.js.map +1 -1
  43. package/lib/esm/src/client/squads.js.map +1 -1
  44. package/lib/esm/src/client/trade.js +2 -2
  45. package/lib/esm/src/client/trade.js.map +1 -1
  46. package/lib/esm/src/client/wormhole.js.map +1 -1
  47. package/lib/esm/src/errorReporter.js.map +1 -1
  48. package/lib/esm/src/index.js +5 -2
  49. package/lib/esm/src/index.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/client/dispersed.d.ts +91 -0
  53. package/lib/types/src/client/dispersed.d.ts.map +1 -0
  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 +31 -23
  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 +17 -13
  67. package/lib/types/src/dbTypesV2.d.ts.map +1 -1
  68. package/lib/types/src/errorReporter.d.ts.map +1 -1
  69. package/lib/types/src/index.d.ts +2 -2
  70. package/lib/types/src/index.d.ts.map +1 -1
  71. package/package.json +1 -1
  72. package/lib/cjs/burn/burnAnalysis.js +0 -101
  73. package/lib/cjs/burn/burnAnalysis.js.map +0 -1
  74. package/lib/cjs/burn/burnCalculations.js +0 -140
  75. package/lib/cjs/burn/burnCalculations.js.map +0 -1
  76. package/lib/esm/src/burn/burnAnalysis.js +0 -90
  77. package/lib/esm/src/burn/burnAnalysis.js.map +0 -1
  78. package/lib/esm/src/burn/burnCalculations.js +0 -124
  79. package/lib/esm/src/burn/burnCalculations.js.map +0 -1
  80. package/lib/types/src/burn/burnAnalysis.d.ts +0 -51
  81. package/lib/types/src/burn/burnAnalysis.d.ts.map +0 -1
  82. package/lib/types/src/burn/burnCalculations.d.ts +0 -52
  83. package/lib/types/src/burn/burnCalculations.d.ts.map +0 -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.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_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;
49
39
  const kysely_1 = require("kysely");
50
40
  const logger_1 = require("../../logger");
51
41
  const pg_1 = require("pg");
@@ -62,14 +52,14 @@ exports.JOB_TABLE = 'job';
62
52
  exports.BURN_TABLE = 'burn';
63
53
  exports.BRIDGE_TRANSFER_TABLE = 'bridge_transfer';
64
54
  exports.NETWORK_REVENUE_TABLE = 'network_revenue';
65
- exports.JOB_BURN_ADJUSTMENT_TABLE = 'job_burn_adjustment';
66
- exports.TX_BURN_ADJUSTMENT_TABLE = 'tx_burn_adjustment';
55
+ exports.BURN_ADJUSTMENT_TABLE = 'burn_adjustment';
67
56
  exports.ENTITY_EPOCH_INFO_TABLE = 'entity_epoch_info';
68
57
  exports.POLYGON_UPGRADE_TABLE = 'polygon_upgrade';
69
58
  exports.CURRENT_USER_GRANT_SPEND_TABLE = 'current_user_grant_spend';
70
59
  exports.USER_GRANT_SPEND_TABLE = 'user_grant_spend';
71
60
  exports.GRANT_BURN_ID_TABLE = 'grant_burn_id';
72
61
  exports.GRANT_BURN_TABLE = 'grant_burn';
62
+ exports.DISPERSED_SETTLEMENT_TABLE = 'dispersed_settlement';
73
63
  BigInt.prototype.toJSON = function () {
74
64
  return this.toString();
75
65
  };
@@ -103,7 +93,7 @@ const pgClient = (config) => {
103
93
  const db = new kysely_1.Kysely({
104
94
  dialect,
105
95
  });
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) {
96
+ const getOrInsertEntity = (db, p, log = logger_1.consoleLogger) => __awaiter(void 0, void 0, void 0, function* () {
107
97
  const res = (yield db
108
98
  .selectFrom(exports.ENTITY_TABLE)
109
99
  .select('id')
@@ -124,7 +114,7 @@ const pgClient = (config) => {
124
114
  log.debug(`inserted entity ${id}`);
125
115
  return id;
126
116
  });
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) {
117
+ const getOrInsertTx = (db, p, log = logger_1.consoleLogger) => __awaiter(void 0, void 0, void 0, function* () {
128
118
  const res = yield db
129
119
  .selectFrom(exports.SOL_TX_TABLE)
130
120
  .select('id')
@@ -146,7 +136,7 @@ const pgClient = (config) => {
146
136
  log.debug(`inserted tx ${id}`);
147
137
  return id;
148
138
  });
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) {
139
+ const getOrInsertEpoch = (db, p, log = logger_1.consoleLogger) => __awaiter(void 0, void 0, void 0, function* () {
150
140
  const res = yield db
151
141
  .selectFrom(exports.EPOCH_TABLE)
152
142
  .select('id')
@@ -174,7 +164,7 @@ const pgClient = (config) => {
174
164
  log.debug(`inserted epoch ${id}`);
175
165
  return id;
176
166
  });
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) {
167
+ const getCurrentUserGrantSpend = (db, p, log = logger_1.consoleLogger) => __awaiter(void 0, void 0, void 0, function* () {
178
168
  var _a;
179
169
  const res = yield db
180
170
  .selectFrom(exports.CURRENT_USER_GRANT_SPEND_TABLE)
@@ -204,7 +194,7 @@ const pgClient = (config) => {
204
194
  .executeTakeFirst());
205
195
  log.info(`set ${res.numUpdatedRows} rows. channel: ${p.channel}, ui: ${p.uiEpochId} -> totalRndr ${totalRndr} `);
206
196
  });
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) {
197
+ const fetchJobs1 = (db, f, log = logger_1.consoleLogger) => __awaiter(void 0, void 0, void 0, function* () {
208
198
  let q = db.selectFrom('job').selectAll();
209
199
  //.where('job.burn_id', 'is not', null)
210
200
  if (f.completedAtAfter) {
@@ -234,7 +224,7 @@ const pgClient = (config) => {
234
224
  insertedAt: r.inserted_at,
235
225
  }));
236
226
  });
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) {
227
+ const fetchJobs2 = (db, f, log = logger_1.consoleLogger) => __awaiter(void 0, void 0, void 0, function* () {
238
228
  let q = db.selectFrom('job').selectAll();
239
229
  //.where('job.burn_id', 'is not', null)
240
230
  if (f.completedAtAfter) {
@@ -268,7 +258,7 @@ const pgClient = (config) => {
268
258
  });
269
259
  });
270
260
  });
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) {
261
+ const createBridgeTransfers = (db, bts, log = logger_1.consoleLogger) => __awaiter(void 0, void 0, void 0, function* () {
272
262
  const sequenceNumbers = [];
273
263
  const dbEpochIds = [];
274
264
  for (const bt of bts) {
@@ -312,7 +302,7 @@ const pgClient = (config) => {
312
302
  }
313
303
  return { sequenceNumbers: sequenceNumbers };
314
304
  });
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) {
305
+ const createPayments = (db, ps, log = logger_1.consoleLogger) => __awaiter(void 0, void 0, void 0, function* () {
316
306
  const ids = [];
317
307
  const epochDbIds = [];
318
308
  for (const p of ps) {
@@ -366,11 +356,7 @@ const pgClient = (config) => {
366
356
  sig: solTx,
367
357
  executedAt,
368
358
  }, log);
369
- // sol_transfer1 already has UNIQUE(sol_tx_id, from_entity_id,
370
- // to_entity_id, symbol). Without ON CONFLICT a retry of the record step
371
- // throws a unique violation and wedges the BullMQ job; make it an
372
- // idempotent no-op and re-fetch the existing id instead.
373
- let transferRow = yield db
359
+ const { id } = yield db
374
360
  .insertInto(exports.SOL_TRANSFER_TABLE)
375
361
  .values({
376
362
  id: dbId,
@@ -381,23 +367,9 @@ const pgClient = (config) => {
381
367
  symbol,
382
368
  amount_payed: amountPayed,
383
369
  })
384
- .onConflict((oc) => oc
385
- .columns(['sol_tx_id', 'from_entity_id', 'to_entity_id', 'symbol'])
386
- .doNothing())
387
370
  .returning((eb) => ['id as id'])
388
- .executeTakeFirst();
389
- if (!transferRow) {
390
- log.warn(`sol_transfer for sol_tx_id ${solTxId} ${fromEntityId}->${toEntityId} ${symbol} already exists; reusing existing id (idempotent retry)`);
391
- transferRow = yield db
392
- .selectFrom(exports.SOL_TRANSFER_TABLE)
393
- .select((eb) => ['id as id'])
394
- .where('sol_tx_id', '=', solTxId)
395
- .where('from_entity_id', '=', fromEntityId)
396
- .where('to_entity_id', '=', toEntityId)
397
- .where('symbol', '=', symbol)
398
- .executeTakeFirstOrThrow();
399
- }
400
- transferId = BigInt(transferRow.id);
371
+ .executeTakeFirstOrThrow();
372
+ transferId = BigInt(id);
401
373
  }
402
374
  ids.push({ transferId, liabilityId });
403
375
  }
@@ -409,18 +381,18 @@ const pgClient = (config) => {
409
381
  rollback: () => { },
410
382
  trx: db,
411
383
  },
412
- startTransaction() {
413
- return __awaiter(this, arguments, void 0, function* (log = logger_1.consoleLogger) {
384
+ startTransaction(log = logger_1.consoleLogger) {
385
+ return __awaiter(this, void 0, void 0, function* () {
414
386
  return (0, base_2.begin)(db, log);
415
387
  });
416
388
  },
417
- createPayments(db_1, ps_1) {
418
- return __awaiter(this, arguments, void 0, function* (db, ps, log = logger_1.consoleLogger) {
389
+ createPayments(db, ps, log = logger_1.consoleLogger) {
390
+ return __awaiter(this, void 0, void 0, function* () {
419
391
  return createPayments(db.trx, ps, log);
420
392
  });
421
393
  },
422
- fetchTransfers(db_1, f_1) {
423
- return __awaiter(this, arguments, void 0, function* (db, f, log = logger_1.consoleLogger) {
394
+ fetchTransfers(db, f, log = logger_1.consoleLogger) {
395
+ return __awaiter(this, void 0, void 0, function* () {
424
396
  let lastId = undefined;
425
397
  if (f.cursor) {
426
398
  lastId = atob(f.cursor);
@@ -476,8 +448,8 @@ const pgClient = (config) => {
476
448
  };
477
449
  });
478
450
  },
479
- fetchEpochs(db_1, f_1) {
480
- return __awaiter(this, arguments, void 0, function* (db, f, log = logger_1.consoleLogger) {
451
+ fetchEpochs(db, f, log = logger_1.consoleLogger) {
452
+ return __awaiter(this, void 0, void 0, function* () {
481
453
  let q = db.trx.selectFrom(exports.EPOCH_TABLE).selectAll();
482
454
  if (f.channels) {
483
455
  q = q.where('channel', 'in', f.channels);
@@ -500,9 +472,9 @@ const pgClient = (config) => {
500
472
  }));
501
473
  });
502
474
  },
503
- fetchLiabilities(db_1, f_1) {
504
- return __awaiter(this, arguments, void 0, function* (db, f, log = logger_1.consoleLogger) {
505
- var _a;
475
+ fetchLiabilities(db, f, log = logger_1.consoleLogger) {
476
+ var _a;
477
+ return __awaiter(this, void 0, void 0, function* () {
506
478
  let offset = 0;
507
479
  let orderBy = (_a = f.orderBy) !== null && _a !== void 0 ? _a : 'epoch.ui,liability.id';
508
480
  if (f.cursor) {
@@ -569,8 +541,8 @@ const pgClient = (config) => {
569
541
  };
570
542
  });
571
543
  },
572
- getLiabilitiesAndTransfers(f_1) {
573
- return __awaiter(this, arguments, void 0, function* (f, log = logger_1.consoleLogger) {
544
+ getLiabilitiesAndTransfers(f, log = logger_1.consoleLogger) {
545
+ return __awaiter(this, void 0, void 0, function* () {
574
546
  let lq = db
575
547
  .selectFrom(exports.LIABILITY_TABLE)
576
548
  .selectAll()
@@ -631,9 +603,9 @@ const pgClient = (config) => {
631
603
  return { transfers, liabilities, epochs: Object.values(epochs) };
632
604
  });
633
605
  },
634
- getOutstanding(f_1) {
635
- return __awaiter(this, arguments, void 0, function* (f, log = logger_1.consoleLogger) {
636
- var _a, _b, _c, _d, _e;
606
+ getOutstanding(f, log = logger_1.consoleLogger) {
607
+ var _a, _b, _c, _d, _e;
608
+ return __awaiter(this, void 0, void 0, function* () {
637
609
  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
610
  let epochUi;
639
611
  let epochEndTime;
@@ -742,9 +714,9 @@ const pgClient = (config) => {
742
714
  return out;
743
715
  });
744
716
  },
745
- fetchNodeOperatorEpoch(epochId_1) {
746
- return __awaiter(this, arguments, void 0, function* (epochId, log = logger_1.consoleLogger) {
747
- var _a;
717
+ fetchNodeOperatorEpoch(epochId, log = logger_1.consoleLogger) {
718
+ var _a;
719
+ return __awaiter(this, void 0, void 0, function* () {
748
720
  const q = db
749
721
  .selectFrom(exports.JOB_ID_TABLE)
750
722
  .innerJoin(exports.EPOCH_TABLE, 'epoch.id', 'job_id.epoch_id')
@@ -794,14 +766,14 @@ const pgClient = (config) => {
794
766
  };
795
767
  });
796
768
  },
797
- insertEpoch(db_1, epoch_1) {
798
- return __awaiter(this, arguments, void 0, function* (db, epoch, log = logger_1.consoleLogger) {
769
+ insertEpoch(db, epoch, log = logger_1.consoleLogger) {
770
+ return __awaiter(this, void 0, void 0, function* () {
799
771
  yield getOrInsertEpoch(db.trx, Object.assign(Object.assign({}, epoch), { uiEpochId: epoch.ui }), log);
800
772
  });
801
773
  },
802
- getEpoch(f_1) {
803
- return __awaiter(this, arguments, void 0, function* (f, log = logger_1.consoleLogger) {
804
- var _a;
774
+ getEpoch(f, log = logger_1.consoleLogger) {
775
+ var _a;
776
+ return __awaiter(this, void 0, void 0, function* () {
805
777
  const now = new Date(Date.now());
806
778
  try {
807
779
  let q = db
@@ -839,9 +811,9 @@ const pgClient = (config) => {
839
811
  }
840
812
  });
841
813
  },
842
- getLatestNodeOperatorEpoch(f_1) {
843
- return __awaiter(this, arguments, void 0, function* (f, log = logger_1.consoleLogger) {
844
- var _a;
814
+ getLatestNodeOperatorEpoch(f, log = logger_1.consoleLogger) {
815
+ var _a;
816
+ return __awaiter(this, void 0, void 0, function* () {
845
817
  const now = new Date(Date.now());
846
818
  try {
847
819
  let q = db
@@ -881,8 +853,8 @@ const pgClient = (config) => {
881
853
  }
882
854
  });
883
855
  },
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) {
856
+ saveNodeOperatorEpoch(epochId, liabilities, jobIds, totalRndr, log = logger_1.consoleLogger) {
857
+ return __awaiter(this, void 0, void 0, function* () {
886
858
  yield db
887
859
  .transaction()
888
860
  .setIsolationLevel('repeatable read')
@@ -918,8 +890,8 @@ const pgClient = (config) => {
918
890
  return;
919
891
  });
920
892
  },
921
- produceBurnedJobs(jobs_1) {
922
- return __awaiter(this, arguments, void 0, function* (jobs, log = logger_1.consoleLogger) {
893
+ produceBurnedJobs(jobs, log = logger_1.consoleLogger) {
894
+ return __awaiter(this, void 0, void 0, function* () {
923
895
  yield db.transaction().execute((trx) => __awaiter(this, void 0, void 0, function* () {
924
896
  var _a;
925
897
  let num = BigInt(0);
@@ -942,9 +914,9 @@ const pgClient = (config) => {
942
914
  }));
943
915
  });
944
916
  },
945
- markJobsBurntWithGrant(db_1, p_1) {
946
- return __awaiter(this, arguments, void 0, function* (db, p, log = logger_1.consoleLogger) {
947
- var _a;
917
+ markJobsBurntWithGrant(db, p, log = logger_1.consoleLogger) {
918
+ var _a;
919
+ return __awaiter(this, void 0, void 0, function* () {
948
920
  const solTxId = yield getOrInsertTx(db.trx, { sig: p.tx.sig, executedAt: p.tx.executedAt }, log);
949
921
  const { id } = yield db.trx
950
922
  .insertInto(exports.GRANT_BURN_TABLE)
@@ -975,9 +947,9 @@ const pgClient = (config) => {
975
947
  return;
976
948
  });
977
949
  },
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;
950
+ insertGrantSpend(db, p, log = logger_1.consoleLogger) {
951
+ var _a, _b, _c;
952
+ return __awaiter(this, void 0, void 0, function* () {
981
953
  const existing = yield getCurrentUserGrantSpend(db.trx, { userId: p.userId }, log);
982
954
  const diff = {
983
955
  render_spent: ((_a = existing === null || existing === void 0 ? void 0 : existing.renderSpent) !== null && _a !== void 0 ? _a : BigInt(0)) + p.renderSpentDelta,
@@ -1042,9 +1014,9 @@ const pgClient = (config) => {
1042
1014
  }
1043
1015
  });
1044
1016
  },
1045
- markJobsBurnt(trx_1, p_1) {
1046
- return __awaiter(this, arguments, void 0, function* (trx, p, log = logger_1.consoleLogger) {
1047
- var _a, _b;
1017
+ markJobsBurnt(trx, p, log = logger_1.consoleLogger) {
1018
+ var _a, _b;
1019
+ return __awaiter(this, void 0, void 0, function* () {
1048
1020
  if (!p.buyBurn && !p.grantBurn) {
1049
1021
  throw new Error('no buyBurn or grantBurn');
1050
1022
  }
@@ -1052,7 +1024,7 @@ const pgClient = (config) => {
1052
1024
  let buyBurnId;
1053
1025
  let grantBurnId;
1054
1026
  if (p.buyBurn) {
1055
- const { burned, usdcSpent, eurToUsdc, renderToUsdc, quoteAmt, tags, jobBurnAdjustmentId, txBurnAdjustmentId, toBurn, fromEscrowCredit, } = p.buyBurn;
1027
+ const { burned, usdcSpent, eurToUsdc, renderToUsdc, quoteAmt, tags, burnAdjustmentId, toBurn, } = p.buyBurn;
1056
1028
  let pricedAt = p.buyBurn.pricedAt;
1057
1029
  if (!pricedAt) {
1058
1030
  const jobs = yield fetchJobs1(trx.trx, { ids: p.jobs.map((j) => String(j.id)) }, log);
@@ -1071,30 +1043,17 @@ const pgClient = (config) => {
1071
1043
  quote_amt: quoteAmt,
1072
1044
  burned: burned,
1073
1045
  tags: tags.join(','),
1074
- job_burn_adjustment_id: jobBurnAdjustmentId,
1075
- tx_burn_adjustment_id: txBurnAdjustmentId,
1046
+ burn_adjustment_id: burnAdjustmentId,
1076
1047
  to_burn: toBurn,
1077
- from_escrow_credit: fromEscrowCredit !== null && fromEscrowCredit !== void 0 ? fromEscrowCredit : 0,
1078
1048
  };
1079
1049
  log.debug(`inserting burn ${JSON.stringify(v)}`);
1080
- // Idempotent on sol_tx_id (uniq_burn_sol_tx_id, migration 27): a retry of
1081
- // the record step for the same on-chain burn is a safe no-op. On conflict
1082
- // executeTakeFirst() returns undefined, so re-fetch the existing id.
1083
- let burnRow = yield trx.trx
1050
+ const { id } = yield trx.trx
1084
1051
  .insertInto(exports.BURN_TABLE)
1085
1052
  .values(v)
1086
- .onConflict((oc) => oc.column('sol_tx_id').doNothing())
1053
+ //.onConflict((oc) => oc.column('sol_tx').doNothing())
1087
1054
  .returning((eb) => ['id as id'])
1088
- .executeTakeFirst();
1089
- if (!burnRow) {
1090
- log.warn(`burn for sol_tx_id ${solTxId} already exists; reusing existing id (idempotent retry)`);
1091
- burnRow = yield trx.trx
1092
- .selectFrom(exports.BURN_TABLE)
1093
- .select((eb) => ['id as id'])
1094
- .where('sol_tx_id', '=', solTxId)
1095
- .executeTakeFirstOrThrow();
1096
- }
1097
- buyBurnId = Number(burnRow.id);
1055
+ .executeTakeFirstOrThrow();
1056
+ buyBurnId = Number(id);
1098
1057
  }
1099
1058
  if (p.grantBurn) {
1100
1059
  const { burned, tags } = p.grantBurn;
@@ -1104,22 +1063,12 @@ const pgClient = (config) => {
1104
1063
  tags: tags === null || tags === void 0 ? void 0 : tags.join(','),
1105
1064
  };
1106
1065
  log.debug(`inserting grant burn ${JSON.stringify(v)}`);
1107
- // Idempotent on sol_tx_id (uniq_grant_burn_sol_tx_id, migration 27).
1108
- let grantBurnRow = yield trx.trx
1066
+ const { id } = yield trx.trx
1109
1067
  .insertInto(exports.GRANT_BURN_TABLE)
1110
1068
  .values(v)
1111
- .onConflict((oc) => oc.column('sol_tx_id').doNothing())
1112
1069
  .returning((eb) => ['id as id'])
1113
- .executeTakeFirst();
1114
- if (!grantBurnRow) {
1115
- log.warn(`grant_burn for sol_tx_id ${solTxId} already exists; reusing existing id (idempotent retry)`);
1116
- grantBurnRow = yield trx.trx
1117
- .selectFrom(exports.GRANT_BURN_TABLE)
1118
- .select((eb) => ['id as id'])
1119
- .where('sol_tx_id', '=', solTxId)
1120
- .executeTakeFirstOrThrow();
1121
- }
1122
- grantBurnId = Number(grantBurnRow.id);
1070
+ .executeTakeFirstOrThrow();
1071
+ grantBurnId = Number(id);
1123
1072
  }
1124
1073
  const burnId = buyBurnId;
1125
1074
  const grantId = grantBurnId !== null && grantBurnId !== void 0 ? grantBurnId : buyBurnId;
@@ -1145,8 +1094,8 @@ const pgClient = (config) => {
1145
1094
  return { grantBurnId, buyBurnId };
1146
1095
  });
1147
1096
  },
1148
- markJobsBurned(trx_1, p_1) {
1149
- return __awaiter(this, arguments, void 0, function* (trx, p, log = logger_1.consoleLogger) {
1097
+ markJobsBurned(trx, p, log = logger_1.consoleLogger) {
1098
+ return __awaiter(this, void 0, void 0, function* () {
1150
1099
  let { markedAt, solTx } = p;
1151
1100
  let res = yield trx.trx
1152
1101
  .updateTable(exports.BURN_TABLE)
@@ -1170,8 +1119,8 @@ const pgClient = (config) => {
1170
1119
  }
1171
1120
  });
1172
1121
  },
1173
- consumeAndLockBurnJobs(limit_1, lowerRndrThreshold_1, upperRndrThreshold_1) {
1174
- return __awaiter(this, arguments, void 0, function* (limit, lowerRndrThreshold, upperRndrThreshold, log = logger_1.consoleLogger) {
1122
+ consumeAndLockBurnJobs(limit, lowerRndrThreshold, upperRndrThreshold, log = logger_1.consoleLogger) {
1123
+ return __awaiter(this, void 0, void 0, function* () {
1175
1124
  const trx = yield (0, base_2.begin)(db, log);
1176
1125
  const q = trx.trx
1177
1126
  .selectFrom(trx.trx
@@ -1278,9 +1227,9 @@ const pgClient = (config) => {
1278
1227
  };
1279
1228
  });
1280
1229
  },
1281
- incrBuyBurnMetrics() {
1282
- return __awaiter(this, arguments, void 0, function* (log = logger_1.consoleLogger) {
1283
- var _a;
1230
+ incrBuyBurnMetrics(log = logger_1.consoleLogger) {
1231
+ var _a;
1232
+ return __awaiter(this, void 0, void 0, function* () {
1284
1233
  const res = yield db
1285
1234
  .selectFrom(exports.JOB_TABLE)
1286
1235
  .select('inserted_at')
@@ -1297,9 +1246,9 @@ const pgClient = (config) => {
1297
1246
  };
1298
1247
  });
1299
1248
  },
1300
- fetchBurns(db_1, f_1) {
1301
- return __awaiter(this, arguments, void 0, function* (db, f, log = logger_1.consoleLogger) {
1302
- var _a, _b;
1249
+ fetchBurns(db, f, log = logger_1.consoleLogger) {
1250
+ var _a, _b;
1251
+ return __awaiter(this, void 0, void 0, function* () {
1303
1252
  let q = db.trx
1304
1253
  .selectFrom('burn')
1305
1254
  .selectAll('burn')
@@ -1368,9 +1317,9 @@ const pgClient = (config) => {
1368
1317
  return burns;
1369
1318
  });
1370
1319
  },
1371
- fetchBurnsAndGrants(db_1, f_1) {
1372
- return __awaiter(this, arguments, void 0, function* (db, f, log = logger_1.consoleLogger) {
1373
- var _a, _b;
1320
+ fetchBurnsAndGrants(db, f, log = logger_1.consoleLogger) {
1321
+ var _a, _b;
1322
+ return __awaiter(this, void 0, void 0, function* () {
1374
1323
  // Build a unified query to get all transactions with both buy burns and grant burns
1375
1324
  let baseQuery = db.trx
1376
1325
  .selectFrom('sol_tx')
@@ -1508,13 +1457,13 @@ const pgClient = (config) => {
1508
1457
  return groupedBurns;
1509
1458
  });
1510
1459
  },
1511
- createBridgeTransfers(db_1, bts_1) {
1512
- return __awaiter(this, arguments, void 0, function* (db, bts, log = logger_1.consoleLogger) {
1460
+ createBridgeTransfers(db, bts, log = logger_1.consoleLogger) {
1461
+ return __awaiter(this, void 0, void 0, function* () {
1513
1462
  return createBridgeTransfers(db.trx, bts, log);
1514
1463
  });
1515
1464
  },
1516
- getBridgeTransfers(_a) {
1517
- return __awaiter(this, arguments, void 0, function* ({ solKey, page, }, log = logger_1.consoleLogger) {
1465
+ getBridgeTransfers({ solKey, page, }, log = logger_1.consoleLogger) {
1466
+ return __awaiter(this, void 0, void 0, function* () {
1518
1467
  let q = db
1519
1468
  .selectFrom(exports.BRIDGE_TRANSFER_TABLE)
1520
1469
  .innerJoin(exports.EPOCH_TABLE, 'epoch.id', 'bridge_transfer.epoch_id')
@@ -1591,8 +1540,8 @@ const pgClient = (config) => {
1591
1540
  });
1592
1541
  },
1593
1542
  getTotalBurned(db) {
1543
+ var _a, _b;
1594
1544
  return __awaiter(this, void 0, void 0, function* () {
1595
- var _a, _b;
1596
1545
  const total = yield db.trx
1597
1546
  .selectFrom('burn')
1598
1547
  .select(({ fn }) => fn.sum('burned').as('total_burned'))
@@ -1600,8 +1549,8 @@ const pgClient = (config) => {
1600
1549
  return BigInt((_b = (_a = total[0]) === null || _a === void 0 ? void 0 : _a.total_burned) !== null && _b !== void 0 ? _b : 0);
1601
1550
  });
1602
1551
  },
1603
- insertBurn(p_1) {
1604
- return __awaiter(this, arguments, void 0, function* (p, log = logger_1.consoleLogger) {
1552
+ insertBurn(p, log = logger_1.consoleLogger) {
1553
+ return __awaiter(this, void 0, void 0, function* () {
1605
1554
  yield db.transaction().execute((trx) => __awaiter(this, void 0, void 0, function* () {
1606
1555
  var _a;
1607
1556
  const solTxId = yield getOrInsertTx(trx, { sig: p.solTx, executedAt: p.executedAt }, log);
@@ -1638,18 +1587,85 @@ const pgClient = (config) => {
1638
1587
  }));
1639
1588
  });
1640
1589
  },
1641
- fetchJobs(db_1, f_1) {
1642
- return __awaiter(this, arguments, void 0, function* (db, f, log = logger_1.consoleLogger) {
1590
+ insertDispersedOutbox(p, log = logger_1.consoleLogger) {
1591
+ var _a, _b;
1592
+ return __awaiter(this, void 0, void 0, function* () {
1593
+ const res = yield db
1594
+ .insertInto(exports.DISPERSED_SETTLEMENT_TABLE)
1595
+ .values({
1596
+ tx_signature: p.txSignature,
1597
+ claim_uuid: p.claimUuid,
1598
+ obligation_uuids: p.obligationUuids,
1599
+ settled_amount: p.settledAmount,
1600
+ burned_amount: p.burnedAmount,
1601
+ executed_at: p.executedAt,
1602
+ eur_render: (_a = p.eurRender) !== null && _a !== void 0 ? _a : null,
1603
+ last_valid_block_height: (_b = p.lastValidBlockHeight) !== null && _b !== void 0 ? _b : null,
1604
+ })
1605
+ .onConflict((oc) => oc.column('tx_signature').doNothing())
1606
+ .executeTakeFirst();
1607
+ log.debug(`dispersed outbox tx ${p.txSignature}: ${res.numInsertedOrUpdatedRows} row(s)`);
1608
+ });
1609
+ },
1610
+ markDispersedSettled(txSignature, p, log = logger_1.consoleLogger) {
1611
+ return __awaiter(this, void 0, void 0, function* () {
1612
+ yield db
1613
+ .updateTable(exports.DISPERSED_SETTLEMENT_TABLE)
1614
+ .set({ settled_at: new Date(), idempotent_replay: p.idempotentReplay })
1615
+ .where('tx_signature', '=', txSignature)
1616
+ .execute();
1617
+ log.debug(`dispersed settled tx ${txSignature}`);
1618
+ });
1619
+ },
1620
+ getUnsettledDispersed(log = logger_1.consoleLogger) {
1621
+ return __awaiter(this, void 0, void 0, function* () {
1622
+ const rows = yield db
1623
+ .selectFrom(exports.DISPERSED_SETTLEMENT_TABLE)
1624
+ .selectAll()
1625
+ .where('settled_at', 'is', null)
1626
+ .execute();
1627
+ log.debug(`dispersed outbox: ${rows.length} unsettled`);
1628
+ return rows.map((r) => {
1629
+ var _a;
1630
+ return ({
1631
+ txSignature: r.tx_signature,
1632
+ claimUuid: r.claim_uuid,
1633
+ obligationUuids: r.obligation_uuids,
1634
+ settledAmount: r.settled_amount,
1635
+ burnedAmount: r.burned_amount,
1636
+ executedAt: r.executed_at,
1637
+ eurRender: (_a = r.eur_render) !== null && _a !== void 0 ? _a : undefined,
1638
+ // int8 comes back as a string from pg; block heights are well within JS safe-integer range.
1639
+ lastValidBlockHeight: r.last_valid_block_height != null
1640
+ ? Number(r.last_valid_block_height)
1641
+ : undefined,
1642
+ });
1643
+ });
1644
+ });
1645
+ },
1646
+ voidDispersedOutbox(txSignature, log = logger_1.consoleLogger) {
1647
+ return __awaiter(this, void 0, void 0, function* () {
1648
+ const res = yield db
1649
+ .deleteFrom(exports.DISPERSED_SETTLEMENT_TABLE)
1650
+ .where('tx_signature', '=', txSignature)
1651
+ // Never delete a row we already settled — void only applies to pending (un-landed) rows.
1652
+ .where('settled_at', 'is', null)
1653
+ .executeTakeFirst();
1654
+ log.debug(`dispersed outbox void tx ${txSignature}: ${res.numDeletedRows} row(s)`);
1655
+ });
1656
+ },
1657
+ fetchJobs(db, f, log = logger_1.consoleLogger) {
1658
+ return __awaiter(this, void 0, void 0, function* () {
1643
1659
  return yield fetchJobs1(db.trx, f, log);
1644
1660
  });
1645
1661
  },
1646
- fetchJobsWithGrantValues(db_1, f_1) {
1647
- return __awaiter(this, arguments, void 0, function* (db, f, log = logger_1.consoleLogger) {
1662
+ fetchJobsWithGrantValues(db, f, log = logger_1.consoleLogger) {
1663
+ return __awaiter(this, void 0, void 0, function* () {
1648
1664
  return yield fetchJobs2(db.trx, f, log);
1649
1665
  });
1650
1666
  },
1651
- fetchLiabilityEpochs(db_1) {
1652
- return __awaiter(this, arguments, void 0, function* (db, log = logger_1.consoleLogger) {
1667
+ fetchLiabilityEpochs(db, log = logger_1.consoleLogger) {
1668
+ return __awaiter(this, void 0, void 0, function* () {
1653
1669
  const q = db.trx
1654
1670
  .selectFrom(exports.LIABILITY_TABLE)
1655
1671
  .select(({ fn }) => [
@@ -1707,94 +1723,50 @@ const pgClient = (config) => {
1707
1723
  }));
1708
1724
  });
1709
1725
  },
1710
- createTxBurnAdjustment(trx_1, p_1) {
1711
- return __awaiter(this, arguments, void 0, function* (trx, p, log = logger_1.consoleLogger) {
1712
- // Idempotent per sol_tx_id (unique) — a re-run for the same bad tx is a no-op.
1713
- const row = yield trx.trx
1714
- .insertInto(exports.TX_BURN_ADJUSTMENT_TABLE)
1715
- .values({
1716
- sol_tx_id: p.solTxId,
1717
- surplus_render: p.surplusRender,
1718
- description: p.description,
1719
- })
1720
- .onConflict((oc) => oc.column('sol_tx_id').doNothing())
1721
- .returning('id')
1722
- .executeTakeFirst();
1723
- if (!row) {
1724
- log.info(`tx_burn_adjustment for sol_tx ${p.solTxId} already exists — skipped`);
1725
- return undefined;
1726
+ getBurnAdjustments(trx, ps, log = logger_1.consoleLogger) {
1727
+ return __awaiter(this, void 0, void 0, function* () {
1728
+ if (ps.toFill) {
1729
+ const q = trx.trx
1730
+ .selectFrom(exports.BURN_ADJUSTMENT_TABLE)
1731
+ .selectAll(exports.BURN_ADJUSTMENT_TABLE)
1732
+ .innerJoin(exports.JOB_TABLE, `${exports.JOB_TABLE}.id`, `${exports.BURN_ADJUSTMENT_TABLE}.job_id`)
1733
+ .select([`${exports.JOB_TABLE}.completed_at`, `${exports.JOB_TABLE}.render_amt`])
1734
+ .leftJoin(exports.BURN_TABLE, `${exports.BURN_TABLE}.burn_adjustment_id`, `${exports.BURN_ADJUSTMENT_TABLE}.id`)
1735
+ .select(({ fn, lit }) => [
1736
+ fn
1737
+ .sum(fn.coalesce(`${exports.BURN_TABLE}.to_burn`, lit(0)))
1738
+ .as('tot_to_burn'),
1739
+ fn
1740
+ .sum(fn.coalesce(`${exports.BURN_TABLE}.burned`, lit(0)))
1741
+ .as('tot_burned'),
1742
+ ])
1743
+ .groupBy([
1744
+ `${exports.BURN_ADJUSTMENT_TABLE}.id`,
1745
+ `${exports.JOB_TABLE}.completed_at`,
1746
+ `${exports.JOB_TABLE}.render_amt`,
1747
+ ])
1748
+ .havingRef((0, kysely_1.sql) `SUM(COALESCE("burn"."to_burn", 0)) - SUM(COALESCE("burn"."burned", 0))`, '<', `${exports.BURN_ADJUSTMENT_TABLE}.down_adj_to_burn`);
1749
+ log.info(`getBurnAdjustments ${q.compile().sql}`);
1750
+ const res = yield q.execute();
1751
+ return res.map((r) => ({
1752
+ id: Number(r.id),
1753
+ createdAt: r.created_at,
1754
+ jobId: Number(r.job_id),
1755
+ downAdjRndrUsed: Number(r.down_adj_rndr_used),
1756
+ downAdjToBurn: Number(r.down_adj_to_burn),
1757
+ adjusted: Number(r.tot_to_burn) - Number(r.tot_burned),
1758
+ job: {
1759
+ id: Number(r.job_id),
1760
+ completedAt: r.completed_at,
1761
+ rndrUsed: BigInt(r.render_amt),
1762
+ },
1763
+ }));
1726
1764
  }
1727
- log.info(`created tx_burn_adjustment ${row.id}: ${p.surplusRender} RENDER surplus (sol_tx ${p.solTxId})`);
1728
- return Number(row.id);
1729
- });
1730
- },
1731
- getJobBurnAdjustments(trx_1, ps_1) {
1732
- return __awaiter(this, arguments, void 0, function* (trx, ps, log = logger_1.consoleLogger) {
1733
- if (!ps.toFill)
1734
- return [];
1735
- const q = trx.trx
1736
- .selectFrom(exports.JOB_BURN_ADJUSTMENT_TABLE)
1737
- .selectAll(exports.JOB_BURN_ADJUSTMENT_TABLE)
1738
- .innerJoin(exports.JOB_TABLE, `${exports.JOB_TABLE}.id`, `${exports.JOB_BURN_ADJUSTMENT_TABLE}.job_id`)
1739
- .select([`${exports.JOB_TABLE}.completed_at`, `${exports.JOB_TABLE}.render_amt`])
1740
- .leftJoin(exports.BURN_TABLE, `${exports.BURN_TABLE}.job_burn_adjustment_id`, `${exports.JOB_BURN_ADJUSTMENT_TABLE}.id`)
1741
- .select(({ fn, lit }) => [
1742
- fn.sum(fn.coalesce(`${exports.BURN_TABLE}.to_burn`, lit(0))).as('tot_to_burn'),
1743
- fn.sum(fn.coalesce(`${exports.BURN_TABLE}.burned`, lit(0))).as('tot_burned'),
1744
- ])
1745
- .groupBy([
1746
- `${exports.JOB_BURN_ADJUSTMENT_TABLE}.id`,
1747
- `${exports.JOB_TABLE}.completed_at`,
1748
- `${exports.JOB_TABLE}.render_amt`,
1749
- ]);
1750
- log.info(`getJobBurnAdjustments ${q.compile().sql}`);
1751
- const res = yield q.execute();
1752
- return res
1753
- .map((r) => ({
1754
- id: Number(r.id),
1755
- createdAt: r.created_at,
1756
- jobId: Number(r.job_id),
1757
- downAdjRndrUsed: Number(r.down_adj_rndr_used),
1758
- downAdjToBurn: Number(r.down_adj_to_burn),
1759
- adjusted: Number(r.tot_to_burn) - Number(r.tot_burned),
1760
- job: {
1761
- id: Number(r.job_id),
1762
- completedAt: r.completed_at,
1763
- rndrUsed: BigInt(r.render_amt),
1764
- },
1765
- }))
1766
- .filter((a) => a.adjusted < a.downAdjToBurn);
1765
+ return [];
1767
1766
  });
1768
1767
  },
1769
- getTxBurnAdjustments(trx_1, ps_1) {
1770
- return __awaiter(this, arguments, void 0, function* (trx, ps, log = logger_1.consoleLogger) {
1771
- if (!ps.toFill)
1772
- return [];
1773
- const q = trx.trx
1774
- .selectFrom(exports.TX_BURN_ADJUSTMENT_TABLE)
1775
- .selectAll(exports.TX_BURN_ADJUSTMENT_TABLE)
1776
- .leftJoin(exports.BURN_TABLE, `${exports.BURN_TABLE}.tx_burn_adjustment_id`, `${exports.TX_BURN_ADJUSTMENT_TABLE}.id`)
1777
- .select(({ fn, lit }) => [
1778
- fn
1779
- .sum(fn.coalesce(`${exports.BURN_TABLE}.from_escrow_credit`, lit(0)))
1780
- .as('tot_from_escrow'),
1781
- ])
1782
- .groupBy(`${exports.TX_BURN_ADJUSTMENT_TABLE}.id`);
1783
- log.info(`getTxBurnAdjustments ${q.compile().sql}`);
1784
- const res = yield q.execute();
1785
- return res
1786
- .map((r) => ({
1787
- id: Number(r.id),
1788
- createdAt: r.created_at,
1789
- solTxId: Number(r.sol_tx_id),
1790
- surplusRender: Number(r.surplus_render),
1791
- consumed: Number(r.tot_from_escrow),
1792
- }))
1793
- .filter((a) => a.consumed < a.surplusRender);
1794
- });
1795
- },
1796
- insertPolygonUpgrade(db_1, p_1) {
1797
- return __awaiter(this, arguments, void 0, function* (db, p, log = logger_1.consoleLogger) {
1768
+ insertPolygonUpgrade(db, p, log = logger_1.consoleLogger) {
1769
+ return __awaiter(this, void 0, void 0, function* () {
1798
1770
  const solTxId = yield getOrInsertTx(db.trx, {
1799
1771
  sig: p.solTx.sig,
1800
1772
  executedAt: p.solTx.executedAt,
@@ -1812,8 +1784,8 @@ const pgClient = (config) => {
1812
1784
  return;
1813
1785
  });
1814
1786
  },
1815
- fetchPolygonUpgrades(db_1, f_1) {
1816
- return __awaiter(this, arguments, void 0, function* (db, f, log = logger_1.consoleLogger) {
1787
+ fetchPolygonUpgrades(db, f, log = logger_1.consoleLogger) {
1788
+ return __awaiter(this, void 0, void 0, function* () {
1817
1789
  let query = db.trx
1818
1790
  .selectFrom('polygon_upgrade')
1819
1791
  .selectAll('polygon_upgrade')
@@ -1839,13 +1811,13 @@ const pgClient = (config) => {
1839
1811
  }));
1840
1812
  });
1841
1813
  },
1842
- getCurrentUserGrantSpend(db_1, f_1) {
1843
- return __awaiter(this, arguments, void 0, function* (db, f, log = logger_1.consoleLogger) {
1814
+ getCurrentUserGrantSpend(db, f, log = logger_1.consoleLogger) {
1815
+ return __awaiter(this, void 0, void 0, function* () {
1844
1816
  return yield getCurrentUserGrantSpend(db.trx, f, log);
1845
1817
  });
1846
1818
  },
1847
- deleteAll() {
1848
- return __awaiter(this, arguments, void 0, function* (log = logger_1.consoleLogger) {
1819
+ deleteAll(log = logger_1.consoleLogger) {
1820
+ return __awaiter(this, void 0, void 0, function* () {
1849
1821
  if (config.database.includes('render')) {
1850
1822
  throw new Error('cannot nuke from deployed database. call from tests only');
1851
1823
  }
@@ -1891,8 +1863,8 @@ const pgClient = (config) => {
1891
1863
  }
1892
1864
  });
1893
1865
  },
1894
- checkPaymentsForDate(targetDate_1) {
1895
- return __awaiter(this, arguments, void 0, function* (targetDate, channel = 'both', log = logger_1.consoleLogger) {
1866
+ checkPaymentsForDate(targetDate, channel = 'both', log = logger_1.consoleLogger) {
1867
+ return __awaiter(this, void 0, void 0, function* () {
1896
1868
  const startOfDay = new Date(targetDate);
1897
1869
  startOfDay.setHours(0, 0, 0, 0);
1898
1870
  const endOfDay = new Date(targetDate);
@@ -1943,8 +1915,8 @@ const pgClient = (config) => {
1943
1915
  }
1944
1916
  });
1945
1917
  },
1946
- checkEpochProcessed(epochId_1, channel_1) {
1947
- return __awaiter(this, arguments, void 0, function* (epochId, channel, log = logger_1.consoleLogger) {
1918
+ checkEpochProcessed(epochId, channel, log = logger_1.consoleLogger) {
1919
+ return __awaiter(this, void 0, void 0, function* () {
1948
1920
  try {
1949
1921
  const result = yield db
1950
1922
  .selectFrom('epoch')
@@ -1964,8 +1936,8 @@ const pgClient = (config) => {
1964
1936
  }
1965
1937
  });
1966
1938
  },
1967
- checkRecentPaymentActivity() {
1968
- return __awaiter(this, arguments, void 0, function* (lookbackHours = 2, channel = 'both', log = logger_1.consoleLogger) {
1939
+ checkRecentPaymentActivity(lookbackHours = 2, channel = 'both', log = logger_1.consoleLogger) {
1940
+ return __awaiter(this, void 0, void 0, function* () {
1969
1941
  const lookbackTime = new Date(Date.now() - lookbackHours * 60 * 60 * 1000);
1970
1942
  const now = new Date();
1971
1943
  try {