@render-foundation/utils 0.0.232 → 0.0.233
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cjs/client/dispersed.js +123 -0
- package/lib/cjs/client/dispersed.js.map +1 -0
- package/lib/cjs/client/pg/v2Client.js +115 -59
- package/lib/cjs/client/pg/v2Client.js.map +1 -1
- package/lib/cjs/client/price.js +41 -17
- package/lib/cjs/client/price.js.map +1 -1
- package/lib/cjs/client/trade.js +2 -0
- package/lib/cjs/client/trade.js.map +1 -1
- package/lib/cjs/index.js +5 -2
- package/lib/cjs/index.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/pg/v2Client.js +99 -56
- package/lib/esm/src/client/pg/v2Client.js.map +1 -1
- package/lib/esm/src/client/price.js +40 -18
- package/lib/esm/src/client/price.js.map +1 -1
- package/lib/esm/src/client/trade.js +2 -0
- package/lib/esm/src/client/trade.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/client/dispersed.d.ts +91 -0
- package/lib/types/src/client/dispersed.d.ts.map +1 -0
- package/lib/types/src/client/pg/v2Client.d.ts +45 -24
- package/lib/types/src/client/pg/v2Client.d.ts.map +1 -1
- package/lib/types/src/client/price.d.ts.map +1 -1
- package/lib/types/src/client/trade.d.ts +2 -0
- package/lib/types/src/client/trade.d.ts.map +1 -1
- package/lib/types/src/dbTypesV2.d.ts +24 -16
- package/lib/types/src/dbTypesV2.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 +1 -1
- package/lib/cjs/burn/burnAnalysis.js +0 -101
- package/lib/cjs/burn/burnAnalysis.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/types/src/burn/burnAnalysis.d.ts +0 -51
- package/lib/types/src/burn/burnAnalysis.d.ts.map +0 -1
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
import { calculateBurnAmounts, } from './burnCalculations';
|
|
2
|
-
import { consoleLogger } from '../logger';
|
|
3
|
-
/**
|
|
4
|
-
* Analyzes a set of jobs and calculates what should have been burned
|
|
5
|
-
* This function can be used for both live processing and backfill analysis
|
|
6
|
-
*/
|
|
7
|
-
export const analyzeBurnJobs = async (ctx, input, opts = {
|
|
8
|
-
perpetual: true,
|
|
9
|
-
}, log = consoleLogger) => {
|
|
10
|
-
const { jobs, params, decimals, pricedAt } = input;
|
|
11
|
-
// Get user grant spends
|
|
12
|
-
const userIds = jobs.reduce((acc, job) => {
|
|
13
|
-
if (job.userId) {
|
|
14
|
-
acc.add(job.userId);
|
|
15
|
-
}
|
|
16
|
-
return acc;
|
|
17
|
-
}, new Set());
|
|
18
|
-
// For analysis, we use the underlying db object directly
|
|
19
|
-
const userGrantSpends = (await Promise.all(Array.from(userIds).map(async (userId) => {
|
|
20
|
-
// Note: For backfill, we might need historical grant spend data
|
|
21
|
-
// This is a limitation we'll need to address
|
|
22
|
-
const currSpend = await ctx.pgV2.getCurrentUserGrantSpend(ctx.pgV2.db, // Use the underlying db object
|
|
23
|
-
{ userId }, log);
|
|
24
|
-
return { userId, currSpend };
|
|
25
|
-
}))).reduce((acc, us) => {
|
|
26
|
-
if (us.currSpend) {
|
|
27
|
-
acc[us.userId] = {
|
|
28
|
-
userGrantSpend: us.currSpend,
|
|
29
|
-
currAllot: us.currSpend.renderSpent,
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
return acc;
|
|
33
|
-
}, {});
|
|
34
|
-
// Get burn adjustments (for backfill, we might need historical data)
|
|
35
|
-
const burnAdjustments = await ctx.pgV2.getJobBurnAdjustments(ctx.pgV2.db, // Use the underlying db object
|
|
36
|
-
{ toFill: true }, log);
|
|
37
|
-
// Determine pricing date
|
|
38
|
-
const effectivePricedAt = pricedAt ||
|
|
39
|
-
calculateBurnAmounts({
|
|
40
|
-
jobs,
|
|
41
|
-
userGrantSpends,
|
|
42
|
-
burnAdjustments,
|
|
43
|
-
params,
|
|
44
|
-
decimals,
|
|
45
|
-
priceAtDate: 1,
|
|
46
|
-
eurToUSDC: 1, // Dummy value for date calculation
|
|
47
|
-
}, opts, log).pricedAt;
|
|
48
|
-
// Get historical prices
|
|
49
|
-
const price = await ctx.priceClient.getRenderPriceAtDate({
|
|
50
|
-
ts: effectivePricedAt,
|
|
51
|
-
});
|
|
52
|
-
const eurToUSDC = await ctx.priceClient.eurToUSDC(effectivePricedAt);
|
|
53
|
-
// Calculate burn amounts
|
|
54
|
-
const result = calculateBurnAmounts({
|
|
55
|
-
jobs,
|
|
56
|
-
userGrantSpends,
|
|
57
|
-
burnAdjustments,
|
|
58
|
-
params,
|
|
59
|
-
decimals,
|
|
60
|
-
priceAtDate: price,
|
|
61
|
-
eurToUSDC,
|
|
62
|
-
}, opts, log);
|
|
63
|
-
return {
|
|
64
|
-
...result,
|
|
65
|
-
price,
|
|
66
|
-
eurToUSDC,
|
|
67
|
-
};
|
|
68
|
-
};
|
|
69
|
-
export const compareBurnAmounts = (expected, actual) => {
|
|
70
|
-
const discrepancyTotalToBurn = actual.totalToBurn - expected.totalToBurn;
|
|
71
|
-
/* // Only return discrepancy if absolute total discrepancy is significant (> 10^8)
|
|
72
|
-
if (Math.abs(discrepancyTotalToBurn) <= Math.pow(10, 8)) {
|
|
73
|
-
return null
|
|
74
|
-
} */
|
|
75
|
-
return {
|
|
76
|
-
expectedRenderToBuyAndBurn: expected.renderToBuyAndBurn,
|
|
77
|
-
actualRenderToBuyAndBurn: actual.renderToBuyAndBurn,
|
|
78
|
-
expectedRenderToBurnFromEmissions: expected.renderToBurnFromEmissions,
|
|
79
|
-
actualRenderToBurnFromEmissions: actual.renderToBurnFromEmissions,
|
|
80
|
-
expectedTotalToBurn: expected.totalToBurn,
|
|
81
|
-
actualTotalToBurn: actual.totalToBurn,
|
|
82
|
-
discrepancyRenderToBuyAndBurn: actual.renderToBuyAndBurn - expected.renderToBuyAndBurn,
|
|
83
|
-
discrepancyRenderToBurnFromEmissions: actual.renderToBurnFromEmissions - expected.renderToBurnFromEmissions,
|
|
84
|
-
discrepancyTotalToBurn,
|
|
85
|
-
jobs: actual.jobs,
|
|
86
|
-
burnDate: actual.burnDate,
|
|
87
|
-
txSig: actual.txSig,
|
|
88
|
-
};
|
|
89
|
-
};
|
|
90
|
-
//# sourceMappingURL=burnAnalysis.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"burnAnalysis.js","sourceRoot":"","sources":["../../../../src/burn/burnAnalysis.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import { Job, PriceClient, DB } from '../index';
|
|
2
|
-
import { BurnCalculationResult, IncrBuyAndBurnParams } from './burnCalculations';
|
|
3
|
-
import { RenderLogger } from '../logger';
|
|
4
|
-
import { PgClient } from '../client/pg/v2Client';
|
|
5
|
-
export interface CronServerCtx {
|
|
6
|
-
pgV2: PgClient<DB>;
|
|
7
|
-
priceClient: PriceClient;
|
|
8
|
-
}
|
|
9
|
-
export interface BurnAnalysisInput {
|
|
10
|
-
jobs: Job[];
|
|
11
|
-
params: IncrBuyAndBurnParams;
|
|
12
|
-
decimals: number;
|
|
13
|
-
pricedAt?: Date;
|
|
14
|
-
}
|
|
15
|
-
export interface BurnAnalysisResult extends BurnCalculationResult {
|
|
16
|
-
price: number;
|
|
17
|
-
eurToUSDC: number;
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* Analyzes a set of jobs and calculates what should have been burned
|
|
21
|
-
* This function can be used for both live processing and backfill analysis
|
|
22
|
-
*/
|
|
23
|
-
export declare const analyzeBurnJobs: (ctx: CronServerCtx, input: BurnAnalysisInput, opts?: {
|
|
24
|
-
perpetual: boolean;
|
|
25
|
-
}, log?: RenderLogger) => Promise<BurnAnalysisResult>;
|
|
26
|
-
/**
|
|
27
|
-
* Compares actual burn data with expected burn calculations
|
|
28
|
-
*/
|
|
29
|
-
export interface BurnDiscrepancy {
|
|
30
|
-
expectedRenderToBuyAndBurn: number;
|
|
31
|
-
actualRenderToBuyAndBurn: number;
|
|
32
|
-
expectedRenderToBurnFromEmissions: number;
|
|
33
|
-
actualRenderToBurnFromEmissions: number;
|
|
34
|
-
expectedTotalToBurn: number;
|
|
35
|
-
actualTotalToBurn: number;
|
|
36
|
-
discrepancyRenderToBuyAndBurn: number;
|
|
37
|
-
discrepancyRenderToBurnFromEmissions: number;
|
|
38
|
-
discrepancyTotalToBurn: number;
|
|
39
|
-
jobs: Job[];
|
|
40
|
-
burnDate: Date;
|
|
41
|
-
txSig?: string;
|
|
42
|
-
}
|
|
43
|
-
export declare const compareBurnAmounts: (expected: BurnAnalysisResult, actual: {
|
|
44
|
-
renderToBuyAndBurn: number;
|
|
45
|
-
renderToBurnFromEmissions: number;
|
|
46
|
-
totalToBurn: number;
|
|
47
|
-
jobs: Job[];
|
|
48
|
-
burnDate: Date;
|
|
49
|
-
txSig?: string;
|
|
50
|
-
}) => BurnDiscrepancy | null;
|
|
51
|
-
//# sourceMappingURL=burnAnalysis.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"burnAnalysis.d.ts","sourceRoot":"","sources":["../../../../src/burn/burnAnalysis.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAyB,WAAW,EAAE,EAAE,EAAE,MAAM,UAAU,CAAA;AACtE,OAAO,EAEL,qBAAqB,EACrB,oBAAoB,EACrB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,YAAY,EAAiB,MAAM,WAAW,CAAA;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAGhD,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAA;IAClB,WAAW,EAAE,WAAW,CAAA;CACzB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,GAAG,EAAE,CAAA;IACX,MAAM,EAAE,oBAAoB,CAAA;IAC5B,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,IAAI,CAAA;CAChB;AAED,MAAM,WAAW,kBAAmB,SAAQ,qBAAqB;IAC/D,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;CAClB;AAED;;;GAGG;AACH,eAAO,MAAM,eAAe,QACrB,aAAa,SACX,iBAAiB,SAClB;IACJ,SAAS,EAAE,OAAO,CAAA;CACnB,QAGI,YAAY,KAChB,QAAQ,kBAAkB,CAqF5B,CAAA;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,0BAA0B,EAAE,MAAM,CAAA;IAClC,wBAAwB,EAAE,MAAM,CAAA;IAChC,iCAAiC,EAAE,MAAM,CAAA;IACzC,+BAA+B,EAAE,MAAM,CAAA;IACvC,mBAAmB,EAAE,MAAM,CAAA;IAC3B,iBAAiB,EAAE,MAAM,CAAA;IACzB,6BAA6B,EAAE,MAAM,CAAA;IACrC,oCAAoC,EAAE,MAAM,CAAA;IAC5C,sBAAsB,EAAE,MAAM,CAAA;IAC9B,IAAI,EAAE,GAAG,EAAE,CAAA;IACX,QAAQ,EAAE,IAAI,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,eAAO,MAAM,kBAAkB,aACnB,kBAAkB,UACpB;IACN,kBAAkB,EAAE,MAAM,CAAA;IAC1B,yBAAyB,EAAE,MAAM,CAAA;IACjC,WAAW,EAAE,MAAM,CAAA;IACnB,IAAI,EAAE,GAAG,EAAE,CAAA;IACX,QAAQ,EAAE,IAAI,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,KACA,eAAe,GAAG,IAwBpB,CAAA"}
|