@render-foundation/utils 0.0.198 → 0.0.199
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/CHANGELOG.md +310 -0
- package/lib/cjs/assertSecrets.js +2 -1
- package/lib/cjs/assertSecrets.js.map +1 -1
- package/lib/cjs/backfiller.js +16 -16
- package/lib/cjs/backfiller.js.map +1 -1
- package/lib/cjs/client/dispersed.js +123 -0
- package/lib/cjs/client/dispersed.js.map +1 -0
- 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 +154 -157
- 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 +12 -19
- 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/client/dispersed.js +108 -0
- package/lib/esm/src/client/dispersed.js.map +1 -0
- 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 +50 -49
- 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/src/index.js +5 -2
- package/lib/esm/src/index.js.map +1 -1
- package/lib/esm/tsconfig.esm.tsbuildinfo +1 -1
- package/lib/types/src/backfiller.d.ts.map +1 -1
- package/lib/types/src/client/dispersed.d.ts +91 -0
- package/lib/types/src/client/dispersed.d.ts.map +1 -0
- 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 +21 -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 +12 -0
- package/lib/types/src/dbTypesV2.d.ts.map +1 -1
- package/lib/types/src/errorReporter.d.ts.map +1 -1
- package/lib/types/src/index.d.ts +2 -2
- package/lib/types/src/index.d.ts.map +1 -1
- package/package.json +2 -2
- package/lib/cjs/burn/burnAnalysis.js +0 -101
- package/lib/cjs/burn/burnAnalysis.js.map +0 -1
- package/lib/cjs/burn/burnCalculations.js +0 -140
- package/lib/cjs/burn/burnCalculations.js.map +0 -1
- package/lib/esm/src/burn/burnAnalysis.js +0 -90
- package/lib/esm/src/burn/burnAnalysis.js.map +0 -1
- package/lib/esm/src/burn/burnCalculations.js +0 -124
- package/lib/esm/src/burn/burnCalculations.js.map +0 -1
- package/lib/types/src/burn/burnAnalysis.d.ts +0 -51
- package/lib/types/src/burn/burnAnalysis.d.ts.map +0 -1
- package/lib/types/src/burn/burnCalculations.d.ts +0 -52
- 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) ||
|
|
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.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");
|
|
@@ -69,6 +59,7 @@ exports.CURRENT_USER_GRANT_SPEND_TABLE = 'current_user_grant_spend';
|
|
|
69
59
|
exports.USER_GRANT_SPEND_TABLE = 'user_grant_spend';
|
|
70
60
|
exports.GRANT_BURN_ID_TABLE = 'grant_burn_id';
|
|
71
61
|
exports.GRANT_BURN_TABLE = 'grant_burn';
|
|
62
|
+
exports.DISPERSED_SETTLEMENT_TABLE = 'dispersed_settlement';
|
|
72
63
|
BigInt.prototype.toJSON = function () {
|
|
73
64
|
return this.toString();
|
|
74
65
|
};
|
|
@@ -102,7 +93,7 @@ const pgClient = (config) => {
|
|
|
102
93
|
const db = new kysely_1.Kysely({
|
|
103
94
|
dialect,
|
|
104
95
|
});
|
|
105
|
-
const getOrInsertEntity = (
|
|
96
|
+
const getOrInsertEntity = (db, p, log = logger_1.consoleLogger) => __awaiter(void 0, void 0, void 0, function* () {
|
|
106
97
|
const res = (yield db
|
|
107
98
|
.selectFrom(exports.ENTITY_TABLE)
|
|
108
99
|
.select('id')
|
|
@@ -123,7 +114,7 @@ const pgClient = (config) => {
|
|
|
123
114
|
log.debug(`inserted entity ${id}`);
|
|
124
115
|
return id;
|
|
125
116
|
});
|
|
126
|
-
const getOrInsertTx = (
|
|
117
|
+
const getOrInsertTx = (db, p, log = logger_1.consoleLogger) => __awaiter(void 0, void 0, void 0, function* () {
|
|
127
118
|
const res = yield db
|
|
128
119
|
.selectFrom(exports.SOL_TX_TABLE)
|
|
129
120
|
.select('id')
|
|
@@ -145,7 +136,7 @@ const pgClient = (config) => {
|
|
|
145
136
|
log.debug(`inserted tx ${id}`);
|
|
146
137
|
return id;
|
|
147
138
|
});
|
|
148
|
-
const getOrInsertEpoch = (
|
|
139
|
+
const getOrInsertEpoch = (db, p, log = logger_1.consoleLogger) => __awaiter(void 0, void 0, void 0, function* () {
|
|
149
140
|
const res = yield db
|
|
150
141
|
.selectFrom(exports.EPOCH_TABLE)
|
|
151
142
|
.select('id')
|
|
@@ -173,7 +164,7 @@ const pgClient = (config) => {
|
|
|
173
164
|
log.debug(`inserted epoch ${id}`);
|
|
174
165
|
return id;
|
|
175
166
|
});
|
|
176
|
-
const getCurrentUserGrantSpend = (
|
|
167
|
+
const getCurrentUserGrantSpend = (db, p, log = logger_1.consoleLogger) => __awaiter(void 0, void 0, void 0, function* () {
|
|
177
168
|
var _a;
|
|
178
169
|
const res = yield db
|
|
179
170
|
.selectFrom(exports.CURRENT_USER_GRANT_SPEND_TABLE)
|
|
@@ -203,7 +194,7 @@ const pgClient = (config) => {
|
|
|
203
194
|
.executeTakeFirst());
|
|
204
195
|
log.info(`set ${res.numUpdatedRows} rows. channel: ${p.channel}, ui: ${p.uiEpochId} -> totalRndr ${totalRndr} `);
|
|
205
196
|
});
|
|
206
|
-
const fetchJobs1 = (
|
|
197
|
+
const fetchJobs1 = (db, f, log = logger_1.consoleLogger) => __awaiter(void 0, void 0, void 0, function* () {
|
|
207
198
|
let q = db.selectFrom('job').selectAll();
|
|
208
199
|
//.where('job.burn_id', 'is not', null)
|
|
209
200
|
if (f.completedAtAfter) {
|
|
@@ -233,7 +224,7 @@ const pgClient = (config) => {
|
|
|
233
224
|
insertedAt: r.inserted_at,
|
|
234
225
|
}));
|
|
235
226
|
});
|
|
236
|
-
const fetchJobs2 = (
|
|
227
|
+
const fetchJobs2 = (db, f, log = logger_1.consoleLogger) => __awaiter(void 0, void 0, void 0, function* () {
|
|
237
228
|
let q = db.selectFrom('job').selectAll();
|
|
238
229
|
//.where('job.burn_id', 'is not', null)
|
|
239
230
|
if (f.completedAtAfter) {
|
|
@@ -267,7 +258,7 @@ const pgClient = (config) => {
|
|
|
267
258
|
});
|
|
268
259
|
});
|
|
269
260
|
});
|
|
270
|
-
const createBridgeTransfers = (
|
|
261
|
+
const createBridgeTransfers = (db, bts, log = logger_1.consoleLogger) => __awaiter(void 0, void 0, void 0, function* () {
|
|
271
262
|
const sequenceNumbers = [];
|
|
272
263
|
const dbEpochIds = [];
|
|
273
264
|
for (const bt of bts) {
|
|
@@ -311,7 +302,7 @@ const pgClient = (config) => {
|
|
|
311
302
|
}
|
|
312
303
|
return { sequenceNumbers: sequenceNumbers };
|
|
313
304
|
});
|
|
314
|
-
const createPayments = (
|
|
305
|
+
const createPayments = (db, ps, log = logger_1.consoleLogger) => __awaiter(void 0, void 0, void 0, function* () {
|
|
315
306
|
const ids = [];
|
|
316
307
|
const epochDbIds = [];
|
|
317
308
|
for (const p of ps) {
|
|
@@ -365,11 +356,7 @@ const pgClient = (config) => {
|
|
|
365
356
|
sig: solTx,
|
|
366
357
|
executedAt,
|
|
367
358
|
}, log);
|
|
368
|
-
|
|
369
|
-
// to_entity_id, symbol). Without ON CONFLICT a retry of the record step
|
|
370
|
-
// throws a unique violation and wedges the BullMQ job; make it an
|
|
371
|
-
// idempotent no-op and re-fetch the existing id instead.
|
|
372
|
-
let transferRow = yield db
|
|
359
|
+
const { id } = yield db
|
|
373
360
|
.insertInto(exports.SOL_TRANSFER_TABLE)
|
|
374
361
|
.values({
|
|
375
362
|
id: dbId,
|
|
@@ -380,23 +367,9 @@ const pgClient = (config) => {
|
|
|
380
367
|
symbol,
|
|
381
368
|
amount_payed: amountPayed,
|
|
382
369
|
})
|
|
383
|
-
.onConflict((oc) => oc
|
|
384
|
-
.columns(['sol_tx_id', 'from_entity_id', 'to_entity_id', 'symbol'])
|
|
385
|
-
.doNothing())
|
|
386
370
|
.returning((eb) => ['id as id'])
|
|
387
|
-
.
|
|
388
|
-
|
|
389
|
-
log.warn(`sol_transfer for sol_tx_id ${solTxId} ${fromEntityId}->${toEntityId} ${symbol} already exists; reusing existing id (idempotent retry)`);
|
|
390
|
-
transferRow = yield db
|
|
391
|
-
.selectFrom(exports.SOL_TRANSFER_TABLE)
|
|
392
|
-
.select((eb) => ['id as id'])
|
|
393
|
-
.where('sol_tx_id', '=', solTxId)
|
|
394
|
-
.where('from_entity_id', '=', fromEntityId)
|
|
395
|
-
.where('to_entity_id', '=', toEntityId)
|
|
396
|
-
.where('symbol', '=', symbol)
|
|
397
|
-
.executeTakeFirstOrThrow();
|
|
398
|
-
}
|
|
399
|
-
transferId = BigInt(transferRow.id);
|
|
371
|
+
.executeTakeFirstOrThrow();
|
|
372
|
+
transferId = BigInt(id);
|
|
400
373
|
}
|
|
401
374
|
ids.push({ transferId, liabilityId });
|
|
402
375
|
}
|
|
@@ -408,18 +381,18 @@ const pgClient = (config) => {
|
|
|
408
381
|
rollback: () => { },
|
|
409
382
|
trx: db,
|
|
410
383
|
},
|
|
411
|
-
startTransaction() {
|
|
412
|
-
return __awaiter(this,
|
|
384
|
+
startTransaction(log = logger_1.consoleLogger) {
|
|
385
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
413
386
|
return (0, base_2.begin)(db, log);
|
|
414
387
|
});
|
|
415
388
|
},
|
|
416
|
-
createPayments(
|
|
417
|
-
return __awaiter(this,
|
|
389
|
+
createPayments(db, ps, log = logger_1.consoleLogger) {
|
|
390
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
418
391
|
return createPayments(db.trx, ps, log);
|
|
419
392
|
});
|
|
420
393
|
},
|
|
421
|
-
fetchTransfers(
|
|
422
|
-
return __awaiter(this,
|
|
394
|
+
fetchTransfers(db, f, log = logger_1.consoleLogger) {
|
|
395
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
423
396
|
let lastId = undefined;
|
|
424
397
|
if (f.cursor) {
|
|
425
398
|
lastId = atob(f.cursor);
|
|
@@ -475,8 +448,8 @@ const pgClient = (config) => {
|
|
|
475
448
|
};
|
|
476
449
|
});
|
|
477
450
|
},
|
|
478
|
-
fetchEpochs(
|
|
479
|
-
return __awaiter(this,
|
|
451
|
+
fetchEpochs(db, f, log = logger_1.consoleLogger) {
|
|
452
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
480
453
|
let q = db.trx.selectFrom(exports.EPOCH_TABLE).selectAll();
|
|
481
454
|
if (f.channels) {
|
|
482
455
|
q = q.where('channel', 'in', f.channels);
|
|
@@ -499,9 +472,9 @@ const pgClient = (config) => {
|
|
|
499
472
|
}));
|
|
500
473
|
});
|
|
501
474
|
},
|
|
502
|
-
fetchLiabilities(
|
|
503
|
-
|
|
504
|
-
|
|
475
|
+
fetchLiabilities(db, f, log = logger_1.consoleLogger) {
|
|
476
|
+
var _a;
|
|
477
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
505
478
|
let offset = 0;
|
|
506
479
|
let orderBy = (_a = f.orderBy) !== null && _a !== void 0 ? _a : 'epoch.ui,liability.id';
|
|
507
480
|
if (f.cursor) {
|
|
@@ -568,8 +541,8 @@ const pgClient = (config) => {
|
|
|
568
541
|
};
|
|
569
542
|
});
|
|
570
543
|
},
|
|
571
|
-
getLiabilitiesAndTransfers(
|
|
572
|
-
return __awaiter(this,
|
|
544
|
+
getLiabilitiesAndTransfers(f, log = logger_1.consoleLogger) {
|
|
545
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
573
546
|
let lq = db
|
|
574
547
|
.selectFrom(exports.LIABILITY_TABLE)
|
|
575
548
|
.selectAll()
|
|
@@ -630,9 +603,9 @@ const pgClient = (config) => {
|
|
|
630
603
|
return { transfers, liabilities, epochs: Object.values(epochs) };
|
|
631
604
|
});
|
|
632
605
|
},
|
|
633
|
-
getOutstanding(
|
|
634
|
-
|
|
635
|
-
|
|
606
|
+
getOutstanding(f, log = logger_1.consoleLogger) {
|
|
607
|
+
var _a, _b, _c, _d, _e;
|
|
608
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
636
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)'}`);
|
|
637
610
|
let epochUi;
|
|
638
611
|
let epochEndTime;
|
|
@@ -741,9 +714,9 @@ const pgClient = (config) => {
|
|
|
741
714
|
return out;
|
|
742
715
|
});
|
|
743
716
|
},
|
|
744
|
-
fetchNodeOperatorEpoch(
|
|
745
|
-
|
|
746
|
-
|
|
717
|
+
fetchNodeOperatorEpoch(epochId, log = logger_1.consoleLogger) {
|
|
718
|
+
var _a;
|
|
719
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
747
720
|
const q = db
|
|
748
721
|
.selectFrom(exports.JOB_ID_TABLE)
|
|
749
722
|
.innerJoin(exports.EPOCH_TABLE, 'epoch.id', 'job_id.epoch_id')
|
|
@@ -793,14 +766,14 @@ const pgClient = (config) => {
|
|
|
793
766
|
};
|
|
794
767
|
});
|
|
795
768
|
},
|
|
796
|
-
insertEpoch(
|
|
797
|
-
return __awaiter(this,
|
|
769
|
+
insertEpoch(db, epoch, log = logger_1.consoleLogger) {
|
|
770
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
798
771
|
yield getOrInsertEpoch(db.trx, Object.assign(Object.assign({}, epoch), { uiEpochId: epoch.ui }), log);
|
|
799
772
|
});
|
|
800
773
|
},
|
|
801
|
-
getEpoch(
|
|
802
|
-
|
|
803
|
-
|
|
774
|
+
getEpoch(f, log = logger_1.consoleLogger) {
|
|
775
|
+
var _a;
|
|
776
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
804
777
|
const now = new Date(Date.now());
|
|
805
778
|
try {
|
|
806
779
|
let q = db
|
|
@@ -838,9 +811,9 @@ const pgClient = (config) => {
|
|
|
838
811
|
}
|
|
839
812
|
});
|
|
840
813
|
},
|
|
841
|
-
getLatestNodeOperatorEpoch(
|
|
842
|
-
|
|
843
|
-
|
|
814
|
+
getLatestNodeOperatorEpoch(f, log = logger_1.consoleLogger) {
|
|
815
|
+
var _a;
|
|
816
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
844
817
|
const now = new Date(Date.now());
|
|
845
818
|
try {
|
|
846
819
|
let q = db
|
|
@@ -880,8 +853,8 @@ const pgClient = (config) => {
|
|
|
880
853
|
}
|
|
881
854
|
});
|
|
882
855
|
},
|
|
883
|
-
saveNodeOperatorEpoch(
|
|
884
|
-
return __awaiter(this,
|
|
856
|
+
saveNodeOperatorEpoch(epochId, liabilities, jobIds, totalRndr, log = logger_1.consoleLogger) {
|
|
857
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
885
858
|
yield db
|
|
886
859
|
.transaction()
|
|
887
860
|
.setIsolationLevel('repeatable read')
|
|
@@ -917,8 +890,8 @@ const pgClient = (config) => {
|
|
|
917
890
|
return;
|
|
918
891
|
});
|
|
919
892
|
},
|
|
920
|
-
produceBurnedJobs(
|
|
921
|
-
return __awaiter(this,
|
|
893
|
+
produceBurnedJobs(jobs, log = logger_1.consoleLogger) {
|
|
894
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
922
895
|
yield db.transaction().execute((trx) => __awaiter(this, void 0, void 0, function* () {
|
|
923
896
|
var _a;
|
|
924
897
|
let num = BigInt(0);
|
|
@@ -941,9 +914,9 @@ const pgClient = (config) => {
|
|
|
941
914
|
}));
|
|
942
915
|
});
|
|
943
916
|
},
|
|
944
|
-
markJobsBurntWithGrant(
|
|
945
|
-
|
|
946
|
-
|
|
917
|
+
markJobsBurntWithGrant(db, p, log = logger_1.consoleLogger) {
|
|
918
|
+
var _a;
|
|
919
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
947
920
|
const solTxId = yield getOrInsertTx(db.trx, { sig: p.tx.sig, executedAt: p.tx.executedAt }, log);
|
|
948
921
|
const { id } = yield db.trx
|
|
949
922
|
.insertInto(exports.GRANT_BURN_TABLE)
|
|
@@ -974,9 +947,9 @@ const pgClient = (config) => {
|
|
|
974
947
|
return;
|
|
975
948
|
});
|
|
976
949
|
},
|
|
977
|
-
insertGrantSpend(
|
|
978
|
-
|
|
979
|
-
|
|
950
|
+
insertGrantSpend(db, p, log = logger_1.consoleLogger) {
|
|
951
|
+
var _a, _b, _c;
|
|
952
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
980
953
|
const existing = yield getCurrentUserGrantSpend(db.trx, { userId: p.userId }, log);
|
|
981
954
|
const diff = {
|
|
982
955
|
render_spent: ((_a = existing === null || existing === void 0 ? void 0 : existing.renderSpent) !== null && _a !== void 0 ? _a : BigInt(0)) + p.renderSpentDelta,
|
|
@@ -1041,9 +1014,9 @@ const pgClient = (config) => {
|
|
|
1041
1014
|
}
|
|
1042
1015
|
});
|
|
1043
1016
|
},
|
|
1044
|
-
markJobsBurnt(
|
|
1045
|
-
|
|
1046
|
-
|
|
1017
|
+
markJobsBurnt(trx, p, log = logger_1.consoleLogger) {
|
|
1018
|
+
var _a, _b;
|
|
1019
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1047
1020
|
if (!p.buyBurn && !p.grantBurn) {
|
|
1048
1021
|
throw new Error('no buyBurn or grantBurn');
|
|
1049
1022
|
}
|
|
@@ -1074,24 +1047,13 @@ const pgClient = (config) => {
|
|
|
1074
1047
|
to_burn: toBurn,
|
|
1075
1048
|
};
|
|
1076
1049
|
log.debug(`inserting burn ${JSON.stringify(v)}`);
|
|
1077
|
-
|
|
1078
|
-
// the record step for the same on-chain burn is a safe no-op. On conflict
|
|
1079
|
-
// executeTakeFirst() returns undefined, so re-fetch the existing id.
|
|
1080
|
-
let burnRow = yield trx.trx
|
|
1050
|
+
const { id } = yield trx.trx
|
|
1081
1051
|
.insertInto(exports.BURN_TABLE)
|
|
1082
1052
|
.values(v)
|
|
1083
|
-
|
|
1053
|
+
//.onConflict((oc) => oc.column('sol_tx').doNothing())
|
|
1084
1054
|
.returning((eb) => ['id as id'])
|
|
1085
|
-
.
|
|
1086
|
-
|
|
1087
|
-
log.warn(`burn for sol_tx_id ${solTxId} already exists; reusing existing id (idempotent retry)`);
|
|
1088
|
-
burnRow = yield trx.trx
|
|
1089
|
-
.selectFrom(exports.BURN_TABLE)
|
|
1090
|
-
.select((eb) => ['id as id'])
|
|
1091
|
-
.where('sol_tx_id', '=', solTxId)
|
|
1092
|
-
.executeTakeFirstOrThrow();
|
|
1093
|
-
}
|
|
1094
|
-
buyBurnId = Number(burnRow.id);
|
|
1055
|
+
.executeTakeFirstOrThrow();
|
|
1056
|
+
buyBurnId = Number(id);
|
|
1095
1057
|
}
|
|
1096
1058
|
if (p.grantBurn) {
|
|
1097
1059
|
const { burned, tags } = p.grantBurn;
|
|
@@ -1101,22 +1063,12 @@ const pgClient = (config) => {
|
|
|
1101
1063
|
tags: tags === null || tags === void 0 ? void 0 : tags.join(','),
|
|
1102
1064
|
};
|
|
1103
1065
|
log.debug(`inserting grant burn ${JSON.stringify(v)}`);
|
|
1104
|
-
|
|
1105
|
-
let grantBurnRow = yield trx.trx
|
|
1066
|
+
const { id } = yield trx.trx
|
|
1106
1067
|
.insertInto(exports.GRANT_BURN_TABLE)
|
|
1107
1068
|
.values(v)
|
|
1108
|
-
.onConflict((oc) => oc.column('sol_tx_id').doNothing())
|
|
1109
1069
|
.returning((eb) => ['id as id'])
|
|
1110
|
-
.
|
|
1111
|
-
|
|
1112
|
-
log.warn(`grant_burn for sol_tx_id ${solTxId} already exists; reusing existing id (idempotent retry)`);
|
|
1113
|
-
grantBurnRow = yield trx.trx
|
|
1114
|
-
.selectFrom(exports.GRANT_BURN_TABLE)
|
|
1115
|
-
.select((eb) => ['id as id'])
|
|
1116
|
-
.where('sol_tx_id', '=', solTxId)
|
|
1117
|
-
.executeTakeFirstOrThrow();
|
|
1118
|
-
}
|
|
1119
|
-
grantBurnId = Number(grantBurnRow.id);
|
|
1070
|
+
.executeTakeFirstOrThrow();
|
|
1071
|
+
grantBurnId = Number(id);
|
|
1120
1072
|
}
|
|
1121
1073
|
const burnId = buyBurnId;
|
|
1122
1074
|
const grantId = grantBurnId !== null && grantBurnId !== void 0 ? grantBurnId : buyBurnId;
|
|
@@ -1142,8 +1094,8 @@ const pgClient = (config) => {
|
|
|
1142
1094
|
return { grantBurnId, buyBurnId };
|
|
1143
1095
|
});
|
|
1144
1096
|
},
|
|
1145
|
-
markJobsBurned(
|
|
1146
|
-
return __awaiter(this,
|
|
1097
|
+
markJobsBurned(trx, p, log = logger_1.consoleLogger) {
|
|
1098
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1147
1099
|
let { markedAt, solTx } = p;
|
|
1148
1100
|
let res = yield trx.trx
|
|
1149
1101
|
.updateTable(exports.BURN_TABLE)
|
|
@@ -1167,8 +1119,8 @@ const pgClient = (config) => {
|
|
|
1167
1119
|
}
|
|
1168
1120
|
});
|
|
1169
1121
|
},
|
|
1170
|
-
consumeAndLockBurnJobs(
|
|
1171
|
-
return __awaiter(this,
|
|
1122
|
+
consumeAndLockBurnJobs(limit, lowerRndrThreshold, upperRndrThreshold, log = logger_1.consoleLogger) {
|
|
1123
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1172
1124
|
const trx = yield (0, base_2.begin)(db, log);
|
|
1173
1125
|
const q = trx.trx
|
|
1174
1126
|
.selectFrom(trx.trx
|
|
@@ -1275,9 +1227,9 @@ const pgClient = (config) => {
|
|
|
1275
1227
|
};
|
|
1276
1228
|
});
|
|
1277
1229
|
},
|
|
1278
|
-
incrBuyBurnMetrics() {
|
|
1279
|
-
|
|
1280
|
-
|
|
1230
|
+
incrBuyBurnMetrics(log = logger_1.consoleLogger) {
|
|
1231
|
+
var _a;
|
|
1232
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1281
1233
|
const res = yield db
|
|
1282
1234
|
.selectFrom(exports.JOB_TABLE)
|
|
1283
1235
|
.select('inserted_at')
|
|
@@ -1294,9 +1246,9 @@ const pgClient = (config) => {
|
|
|
1294
1246
|
};
|
|
1295
1247
|
});
|
|
1296
1248
|
},
|
|
1297
|
-
fetchBurns(
|
|
1298
|
-
|
|
1299
|
-
|
|
1249
|
+
fetchBurns(db, f, log = logger_1.consoleLogger) {
|
|
1250
|
+
var _a, _b;
|
|
1251
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1300
1252
|
let q = db.trx
|
|
1301
1253
|
.selectFrom('burn')
|
|
1302
1254
|
.selectAll('burn')
|
|
@@ -1365,9 +1317,9 @@ const pgClient = (config) => {
|
|
|
1365
1317
|
return burns;
|
|
1366
1318
|
});
|
|
1367
1319
|
},
|
|
1368
|
-
fetchBurnsAndGrants(
|
|
1369
|
-
|
|
1370
|
-
|
|
1320
|
+
fetchBurnsAndGrants(db, f, log = logger_1.consoleLogger) {
|
|
1321
|
+
var _a, _b;
|
|
1322
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1371
1323
|
// Build a unified query to get all transactions with both buy burns and grant burns
|
|
1372
1324
|
let baseQuery = db.trx
|
|
1373
1325
|
.selectFrom('sol_tx')
|
|
@@ -1505,13 +1457,13 @@ const pgClient = (config) => {
|
|
|
1505
1457
|
return groupedBurns;
|
|
1506
1458
|
});
|
|
1507
1459
|
},
|
|
1508
|
-
createBridgeTransfers(
|
|
1509
|
-
return __awaiter(this,
|
|
1460
|
+
createBridgeTransfers(db, bts, log = logger_1.consoleLogger) {
|
|
1461
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1510
1462
|
return createBridgeTransfers(db.trx, bts, log);
|
|
1511
1463
|
});
|
|
1512
1464
|
},
|
|
1513
|
-
getBridgeTransfers(
|
|
1514
|
-
return __awaiter(this,
|
|
1465
|
+
getBridgeTransfers({ solKey, page, }, log = logger_1.consoleLogger) {
|
|
1466
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1515
1467
|
let q = db
|
|
1516
1468
|
.selectFrom(exports.BRIDGE_TRANSFER_TABLE)
|
|
1517
1469
|
.innerJoin(exports.EPOCH_TABLE, 'epoch.id', 'bridge_transfer.epoch_id')
|
|
@@ -1588,8 +1540,8 @@ const pgClient = (config) => {
|
|
|
1588
1540
|
});
|
|
1589
1541
|
},
|
|
1590
1542
|
getTotalBurned(db) {
|
|
1543
|
+
var _a, _b;
|
|
1591
1544
|
return __awaiter(this, void 0, void 0, function* () {
|
|
1592
|
-
var _a, _b;
|
|
1593
1545
|
const total = yield db.trx
|
|
1594
1546
|
.selectFrom('burn')
|
|
1595
1547
|
.select(({ fn }) => fn.sum('burned').as('total_burned'))
|
|
@@ -1597,8 +1549,8 @@ const pgClient = (config) => {
|
|
|
1597
1549
|
return BigInt((_b = (_a = total[0]) === null || _a === void 0 ? void 0 : _a.total_burned) !== null && _b !== void 0 ? _b : 0);
|
|
1598
1550
|
});
|
|
1599
1551
|
},
|
|
1600
|
-
insertBurn(
|
|
1601
|
-
return __awaiter(this,
|
|
1552
|
+
insertBurn(p, log = logger_1.consoleLogger) {
|
|
1553
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1602
1554
|
yield db.transaction().execute((trx) => __awaiter(this, void 0, void 0, function* () {
|
|
1603
1555
|
var _a;
|
|
1604
1556
|
const solTxId = yield getOrInsertTx(trx, { sig: p.solTx, executedAt: p.executedAt }, log);
|
|
@@ -1635,18 +1587,63 @@ const pgClient = (config) => {
|
|
|
1635
1587
|
}));
|
|
1636
1588
|
});
|
|
1637
1589
|
},
|
|
1638
|
-
|
|
1639
|
-
return __awaiter(this,
|
|
1590
|
+
insertDispersedOutbox(p, log = logger_1.consoleLogger) {
|
|
1591
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1592
|
+
const res = yield db
|
|
1593
|
+
.insertInto(exports.DISPERSED_SETTLEMENT_TABLE)
|
|
1594
|
+
.values({
|
|
1595
|
+
tx_signature: p.txSignature,
|
|
1596
|
+
claim_uuid: p.claimUuid,
|
|
1597
|
+
obligation_uuids: p.obligationUuids,
|
|
1598
|
+
settled_amount: p.settledAmount,
|
|
1599
|
+
burned_amount: p.burnedAmount,
|
|
1600
|
+
executed_at: p.executedAt,
|
|
1601
|
+
})
|
|
1602
|
+
.onConflict((oc) => oc.column('tx_signature').doNothing())
|
|
1603
|
+
.executeTakeFirst();
|
|
1604
|
+
log.debug(`dispersed outbox tx ${p.txSignature}: ${res.numInsertedOrUpdatedRows} row(s)`);
|
|
1605
|
+
});
|
|
1606
|
+
},
|
|
1607
|
+
markDispersedSettled(txSignature, p, log = logger_1.consoleLogger) {
|
|
1608
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1609
|
+
yield db
|
|
1610
|
+
.updateTable(exports.DISPERSED_SETTLEMENT_TABLE)
|
|
1611
|
+
.set({ settled_at: new Date(), idempotent_replay: p.idempotentReplay })
|
|
1612
|
+
.where('tx_signature', '=', txSignature)
|
|
1613
|
+
.execute();
|
|
1614
|
+
log.debug(`dispersed settled tx ${txSignature}`);
|
|
1615
|
+
});
|
|
1616
|
+
},
|
|
1617
|
+
getUnsettledDispersed(log = logger_1.consoleLogger) {
|
|
1618
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1619
|
+
const rows = yield db
|
|
1620
|
+
.selectFrom(exports.DISPERSED_SETTLEMENT_TABLE)
|
|
1621
|
+
.selectAll()
|
|
1622
|
+
.where('settled_at', 'is', null)
|
|
1623
|
+
.execute();
|
|
1624
|
+
log.debug(`dispersed outbox: ${rows.length} unsettled`);
|
|
1625
|
+
return rows.map((r) => ({
|
|
1626
|
+
txSignature: r.tx_signature,
|
|
1627
|
+
claimUuid: r.claim_uuid,
|
|
1628
|
+
obligationUuids: r.obligation_uuids,
|
|
1629
|
+
settledAmount: r.settled_amount,
|
|
1630
|
+
burnedAmount: r.burned_amount,
|
|
1631
|
+
executedAt: r.executed_at,
|
|
1632
|
+
}));
|
|
1633
|
+
});
|
|
1634
|
+
},
|
|
1635
|
+
fetchJobs(db, f, log = logger_1.consoleLogger) {
|
|
1636
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1640
1637
|
return yield fetchJobs1(db.trx, f, log);
|
|
1641
1638
|
});
|
|
1642
1639
|
},
|
|
1643
|
-
fetchJobsWithGrantValues(
|
|
1644
|
-
return __awaiter(this,
|
|
1640
|
+
fetchJobsWithGrantValues(db, f, log = logger_1.consoleLogger) {
|
|
1641
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1645
1642
|
return yield fetchJobs2(db.trx, f, log);
|
|
1646
1643
|
});
|
|
1647
1644
|
},
|
|
1648
|
-
fetchLiabilityEpochs(
|
|
1649
|
-
return __awaiter(this,
|
|
1645
|
+
fetchLiabilityEpochs(db, log = logger_1.consoleLogger) {
|
|
1646
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1650
1647
|
const q = db.trx
|
|
1651
1648
|
.selectFrom(exports.LIABILITY_TABLE)
|
|
1652
1649
|
.select(({ fn }) => [
|
|
@@ -1704,8 +1701,8 @@ const pgClient = (config) => {
|
|
|
1704
1701
|
}));
|
|
1705
1702
|
});
|
|
1706
1703
|
},
|
|
1707
|
-
getBurnAdjustments(
|
|
1708
|
-
return __awaiter(this,
|
|
1704
|
+
getBurnAdjustments(trx, ps, log = logger_1.consoleLogger) {
|
|
1705
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1709
1706
|
if (ps.toFill) {
|
|
1710
1707
|
const q = trx.trx
|
|
1711
1708
|
.selectFrom(exports.BURN_ADJUSTMENT_TABLE)
|
|
@@ -1746,8 +1743,8 @@ const pgClient = (config) => {
|
|
|
1746
1743
|
return [];
|
|
1747
1744
|
});
|
|
1748
1745
|
},
|
|
1749
|
-
insertPolygonUpgrade(
|
|
1750
|
-
return __awaiter(this,
|
|
1746
|
+
insertPolygonUpgrade(db, p, log = logger_1.consoleLogger) {
|
|
1747
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1751
1748
|
const solTxId = yield getOrInsertTx(db.trx, {
|
|
1752
1749
|
sig: p.solTx.sig,
|
|
1753
1750
|
executedAt: p.solTx.executedAt,
|
|
@@ -1765,8 +1762,8 @@ const pgClient = (config) => {
|
|
|
1765
1762
|
return;
|
|
1766
1763
|
});
|
|
1767
1764
|
},
|
|
1768
|
-
fetchPolygonUpgrades(
|
|
1769
|
-
return __awaiter(this,
|
|
1765
|
+
fetchPolygonUpgrades(db, f, log = logger_1.consoleLogger) {
|
|
1766
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1770
1767
|
let query = db.trx
|
|
1771
1768
|
.selectFrom('polygon_upgrade')
|
|
1772
1769
|
.selectAll('polygon_upgrade')
|
|
@@ -1792,13 +1789,13 @@ const pgClient = (config) => {
|
|
|
1792
1789
|
}));
|
|
1793
1790
|
});
|
|
1794
1791
|
},
|
|
1795
|
-
getCurrentUserGrantSpend(
|
|
1796
|
-
return __awaiter(this,
|
|
1792
|
+
getCurrentUserGrantSpend(db, f, log = logger_1.consoleLogger) {
|
|
1793
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1797
1794
|
return yield getCurrentUserGrantSpend(db.trx, f, log);
|
|
1798
1795
|
});
|
|
1799
1796
|
},
|
|
1800
|
-
deleteAll() {
|
|
1801
|
-
return __awaiter(this,
|
|
1797
|
+
deleteAll(log = logger_1.consoleLogger) {
|
|
1798
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1802
1799
|
if (config.database.includes('render')) {
|
|
1803
1800
|
throw new Error('cannot nuke from deployed database. call from tests only');
|
|
1804
1801
|
}
|
|
@@ -1844,8 +1841,8 @@ const pgClient = (config) => {
|
|
|
1844
1841
|
}
|
|
1845
1842
|
});
|
|
1846
1843
|
},
|
|
1847
|
-
checkPaymentsForDate(
|
|
1848
|
-
return __awaiter(this,
|
|
1844
|
+
checkPaymentsForDate(targetDate, channel = 'both', log = logger_1.consoleLogger) {
|
|
1845
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1849
1846
|
const startOfDay = new Date(targetDate);
|
|
1850
1847
|
startOfDay.setHours(0, 0, 0, 0);
|
|
1851
1848
|
const endOfDay = new Date(targetDate);
|
|
@@ -1896,8 +1893,8 @@ const pgClient = (config) => {
|
|
|
1896
1893
|
}
|
|
1897
1894
|
});
|
|
1898
1895
|
},
|
|
1899
|
-
checkEpochProcessed(
|
|
1900
|
-
return __awaiter(this,
|
|
1896
|
+
checkEpochProcessed(epochId, channel, log = logger_1.consoleLogger) {
|
|
1897
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1901
1898
|
try {
|
|
1902
1899
|
const result = yield db
|
|
1903
1900
|
.selectFrom('epoch')
|
|
@@ -1917,8 +1914,8 @@ const pgClient = (config) => {
|
|
|
1917
1914
|
}
|
|
1918
1915
|
});
|
|
1919
1916
|
},
|
|
1920
|
-
checkRecentPaymentActivity() {
|
|
1921
|
-
return __awaiter(this,
|
|
1917
|
+
checkRecentPaymentActivity(lookbackHours = 2, channel = 'both', log = logger_1.consoleLogger) {
|
|
1918
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1922
1919
|
const lookbackTime = new Date(Date.now() - lookbackHours * 60 * 60 * 1000);
|
|
1923
1920
|
const now = new Date();
|
|
1924
1921
|
try {
|