@render-foundation/utils 0.0.170 → 0.0.171

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 (116) hide show
  1. package/lib/cjs/backfiller.js +895 -0
  2. package/lib/cjs/backfiller.js.map +1 -0
  3. package/lib/cjs/client/onchain.js +132 -0
  4. package/lib/cjs/client/onchain.js.map +1 -0
  5. package/lib/cjs/client/pg/base.js +198 -0
  6. package/lib/cjs/client/pg/base.js.map +1 -0
  7. package/lib/cjs/client/pg/v1.js +623 -0
  8. package/lib/cjs/client/pg/v1.js.map +1 -0
  9. package/lib/cjs/client/pg/v2.js +840 -0
  10. package/lib/cjs/client/pg/v2.js.map +1 -0
  11. package/lib/cjs/client/pg/v2Client.js +1436 -0
  12. package/lib/cjs/client/pg/v2Client.js.map +1 -0
  13. package/lib/cjs/client/pg/viewClient.js +107 -0
  14. package/lib/cjs/client/pg/viewClient.js.map +1 -0
  15. package/lib/cjs/client/price.js +63 -0
  16. package/lib/cjs/client/price.js.map +1 -0
  17. package/lib/cjs/client/render.js +172 -0
  18. package/lib/cjs/client/render.js.map +1 -0
  19. package/lib/cjs/client/squads.js +204 -0
  20. package/lib/cjs/client/squads.js.map +1 -0
  21. package/lib/cjs/client/trade.js +231 -0
  22. package/lib/cjs/client/trade.js.map +1 -0
  23. package/lib/cjs/client/wormhole.js +69 -0
  24. package/lib/cjs/client/wormhole.js.map +1 -0
  25. package/lib/cjs/constants.js +46 -0
  26. package/lib/cjs/constants.js.map +1 -0
  27. package/lib/cjs/dbTypes.js +3 -0
  28. package/lib/cjs/dbTypes.js.map +1 -0
  29. package/lib/cjs/dbTypesV2.js +3 -0
  30. package/lib/cjs/dbTypesV2.js.map +1 -0
  31. package/lib/cjs/dbViewTypes.js +3 -0
  32. package/lib/cjs/dbViewTypes.js.map +1 -0
  33. package/lib/cjs/errorReporter.js +126 -0
  34. package/lib/cjs/errorReporter.js.map +1 -0
  35. package/lib/cjs/index.js +45 -0
  36. package/lib/cjs/index.js.map +1 -0
  37. package/lib/cjs/logger.js +21 -0
  38. package/lib/cjs/logger.js.map +1 -0
  39. package/lib/esm/src/backfiller.js +850 -0
  40. package/lib/esm/src/backfiller.js.map +1 -0
  41. package/lib/esm/src/client/onchain.js +122 -0
  42. package/lib/esm/src/client/onchain.js.map +1 -0
  43. package/lib/esm/src/client/pg/base.js +162 -0
  44. package/lib/esm/src/client/pg/base.js.map +1 -0
  45. package/lib/esm/src/client/pg/v1.js +559 -0
  46. package/lib/esm/src/client/pg/v1.js.map +1 -0
  47. package/lib/esm/src/client/pg/v2.js +774 -0
  48. package/lib/esm/src/client/pg/v2.js.map +1 -0
  49. package/lib/esm/src/client/pg/v2Client.js +1327 -0
  50. package/lib/esm/src/client/pg/v2Client.js.map +1 -0
  51. package/lib/esm/src/client/pg/viewClient.js +91 -0
  52. package/lib/esm/src/client/pg/viewClient.js.map +1 -0
  53. package/lib/esm/src/client/price.js +41 -0
  54. package/lib/esm/src/client/price.js.map +1 -0
  55. package/lib/esm/src/client/render.js +146 -0
  56. package/lib/esm/src/client/render.js.map +1 -0
  57. package/lib/esm/src/client/squads.js +163 -0
  58. package/lib/esm/src/client/squads.js.map +1 -0
  59. package/lib/esm/src/client/trade.js +215 -0
  60. package/lib/esm/src/client/trade.js.map +1 -0
  61. package/lib/esm/src/client/wormhole.js +33 -0
  62. package/lib/esm/src/client/wormhole.js.map +1 -0
  63. package/lib/esm/src/constants.js +43 -0
  64. package/lib/esm/src/constants.js.map +1 -0
  65. package/lib/esm/src/dbTypes.js +2 -0
  66. package/lib/esm/src/dbTypes.js.map +1 -0
  67. package/lib/esm/src/dbTypesV2.js +2 -0
  68. package/lib/esm/src/dbTypesV2.js.map +1 -0
  69. package/lib/esm/src/dbViewTypes.js +2 -0
  70. package/lib/esm/src/dbViewTypes.js.map +1 -0
  71. package/lib/esm/src/errorReporter.js +117 -0
  72. package/lib/esm/src/errorReporter.js.map +1 -0
  73. package/lib/esm/src/index.js +16 -0
  74. package/lib/esm/src/index.js.map +1 -0
  75. package/lib/esm/src/logger.js +18 -0
  76. package/lib/esm/src/logger.js.map +1 -0
  77. package/lib/esm/tsconfig.esm.tsbuildinfo +1 -1
  78. package/lib/types/src/backfiller.d.ts +62 -0
  79. package/lib/types/src/backfiller.d.ts.map +1 -0
  80. package/lib/types/src/client/onchain.d.ts +24 -0
  81. package/lib/types/src/client/onchain.d.ts.map +1 -0
  82. package/lib/types/src/client/pg/base.d.ts +65 -0
  83. package/lib/types/src/client/pg/base.d.ts.map +1 -0
  84. package/lib/types/src/client/pg/v1.d.ts +137 -0
  85. package/lib/types/src/client/pg/v1.d.ts.map +1 -0
  86. package/lib/types/src/client/pg/v2.d.ts +36 -0
  87. package/lib/types/src/client/pg/v2.d.ts.map +1 -0
  88. package/lib/types/src/client/pg/v2Client.d.ts +273 -0
  89. package/lib/types/src/client/pg/v2Client.d.ts.map +1 -0
  90. package/lib/types/src/client/pg/viewClient.d.ts +55 -0
  91. package/lib/types/src/client/pg/viewClient.d.ts.map +1 -0
  92. package/lib/types/src/client/price.d.ts +12 -0
  93. package/lib/types/src/client/price.d.ts.map +1 -0
  94. package/lib/types/src/client/render.d.ts +23 -0
  95. package/lib/types/src/client/render.d.ts.map +1 -0
  96. package/lib/types/src/client/squads.d.ts +17 -0
  97. package/lib/types/src/client/squads.d.ts.map +1 -0
  98. package/lib/types/src/client/trade.d.ts +24 -0
  99. package/lib/types/src/client/trade.d.ts.map +1 -0
  100. package/lib/types/src/client/wormhole.d.ts +9 -0
  101. package/lib/types/src/client/wormhole.d.ts.map +1 -0
  102. package/lib/types/src/constants.d.ts +41 -0
  103. package/lib/types/src/constants.d.ts.map +1 -0
  104. package/lib/types/src/dbTypes.d.ts +123 -0
  105. package/lib/types/src/dbTypes.d.ts.map +1 -0
  106. package/lib/types/src/dbTypesV2.d.ts +163 -0
  107. package/lib/types/src/dbTypesV2.d.ts.map +1 -0
  108. package/lib/types/src/dbViewTypes.d.ts +35 -0
  109. package/lib/types/src/dbViewTypes.d.ts.map +1 -0
  110. package/lib/types/src/errorReporter.d.ts +13 -0
  111. package/lib/types/src/errorReporter.d.ts.map +1 -0
  112. package/lib/types/src/index.d.ts +16 -0
  113. package/lib/types/src/index.d.ts.map +1 -0
  114. package/lib/types/src/logger.d.ts +16 -0
  115. package/lib/types/src/logger.d.ts.map +1 -0
  116. package/package.json +1 -1
@@ -0,0 +1,62 @@
1
+ import { PublicKey } from '@solana/web3.js';
2
+ import { type PgClient } from './client/pg/v2Client';
3
+ import type { DB } from './dbTypesV2';
4
+ export interface Transfer {
5
+ amount: number;
6
+ tokenDecimals: number;
7
+ fromAddress?: PublicKey;
8
+ toAddress?: PublicKey;
9
+ sig: string;
10
+ blockTime: number;
11
+ }
12
+ interface OnChainClient {
13
+ getTransfers(f: {
14
+ mint: PublicKey;
15
+ flow: 'in' | 'out';
16
+ addr: PublicKey;
17
+ pageSize?: number;
18
+ }): Promise<Transfer[]>;
19
+ getBalanceChange(f: {
20
+ tokenAccount: PublicKey;
21
+ mint: PublicKey;
22
+ flow: 'in' | 'out';
23
+ addr: PublicKey;
24
+ }): Promise<Transfer[]>;
25
+ getSignaturesForAddress(addr: PublicKey, options?: {
26
+ before?: string;
27
+ limit?: number;
28
+ }): Promise<any[]>;
29
+ getParsedTransaction(signature: string): Promise<any>;
30
+ }
31
+ export declare const solscanProClient: (apiKey: string) => OnChainClient;
32
+ export declare const heliusClient: (apiKey: string) => OnChainClient;
33
+ export declare class Backfiller {
34
+ _types: Record<string, {}>;
35
+ _txs: string[];
36
+ solscanClient: OnChainClient;
37
+ heliusClient: OnChainClient;
38
+ pg?: PgClient<DB>;
39
+ isDryRun: boolean;
40
+ solscan: {
41
+ apiKey?: string;
42
+ pageSize: number;
43
+ };
44
+ constructor(solscanApiKey: string, heliusApiKey: string, pg?: PgClient<DB>, isDryRun?: boolean);
45
+ emit(): this;
46
+ loans(): this;
47
+ buyBurnUSDCInflow(): this;
48
+ manualMint(): this;
49
+ vaultOutflows(p: {
50
+ pageSize?: number;
51
+ }): this;
52
+ txs(...sigs: string[]): void;
53
+ private formatAmount;
54
+ private formatTimestamp;
55
+ private indexLoans;
56
+ private findEmitTxs;
57
+ private indexTxs;
58
+ private indexTransfers;
59
+ run(): Promise<void>;
60
+ }
61
+ export {};
62
+ //# sourceMappingURL=backfiller.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backfiller.d.ts","sourceRoot":"","sources":["../../../src/backfiller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAc3C,OAAO,EAAE,KAAK,QAAQ,EAAY,MAAM,sBAAsB,CAAA;AAC9D,OAAO,KAAK,EAAE,EAAE,EAAW,MAAM,aAAa,CAAA;AAQ9C,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,MAAM,CAAA;IACd,aAAa,EAAE,MAAM,CAAA;IACrB,WAAW,CAAC,EAAE,SAAS,CAAA;IACvB,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,GAAG,EAAE,MAAM,CAAA;IACX,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,UAAU,aAAa;IACrB,YAAY,CAAC,CAAC,EAAE;QACd,IAAI,EAAE,SAAS,CAAA;QACf,IAAI,EAAE,IAAI,GAAG,KAAK,CAAA;QAClB,IAAI,EAAE,SAAS,CAAA;QACf,QAAQ,CAAC,EAAE,MAAM,CAAA;KAClB,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAA;IACvB,gBAAgB,CAAC,CAAC,EAAE;QAClB,YAAY,EAAE,SAAS,CAAA;QACvB,IAAI,EAAE,SAAS,CAAA;QACf,IAAI,EAAE,IAAI,GAAG,KAAK,CAAA;QAClB,IAAI,EAAE,SAAS,CAAA;KAChB,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAA;IACvB,uBAAuB,CACrB,IAAI,EAAE,SAAS,EACf,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAC5C,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;IACjB,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;CACtD;AAED,eAAO,MAAM,gBAAgB,WAAY,MAAM,KAAG,aAiOjD,CAAA;AAED,eAAO,MAAM,YAAY,WAAY,MAAM,KAAG,aAuN7C,CAAA;AAED,qBAAa,UAAU;IACrB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,CAAK;IAC/B,IAAI,EAAE,MAAM,EAAE,CAAK;IACnB,aAAa,EAAE,aAAa,CAAA;IAC5B,YAAY,EAAE,aAAa,CAAA;IAC3B,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAA;IACjB,QAAQ,UAAQ;IAChB,OAAO,EAAE;QACP,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,QAAQ,EAAE,MAAM,CAAA;KACjB,CAAoB;gBAGnB,aAAa,EAAE,MAAM,EACrB,YAAY,EAAE,MAAM,EACpB,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,EACjB,QAAQ,UAAQ;IASlB,IAAI;IAKJ,KAAK;IAKL,iBAAiB;IAKjB,UAAU;IAKV,aAAa,CAAC,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE;IAMtC,GAAG,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE;IAIrB,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,eAAe;YAIT,UAAU;YAmGV,WAAW;YAkFX,QAAQ;YA0IR,cAAc;IAwGtB,GAAG;CA+GV"}
@@ -0,0 +1,24 @@
1
+ import { RenderLogger } from '../logger';
2
+ import { Bridge } from '@render-foundation/idls/lib/types/bridge';
3
+ import { Program } from '@coral-xyz/anchor';
4
+ import { Alchemy } from 'alchemy-sdk';
5
+ export interface OnchainTransfer {
6
+ ethTx?: string;
7
+ blockNo?: number;
8
+ pda?: {
9
+ key: string;
10
+ createdAt: number;
11
+ amount: number;
12
+ incentiveRound: string;
13
+ points: string;
14
+ };
15
+ }
16
+ export declare const fetchTransfers: (bridgeProgram: Program<Bridge>, erc20Contract: any, ethTokenBridge: string, fromBlock: number, f: {
17
+ solKey: string;
18
+ ethKey?: string;
19
+ }, log?: RenderLogger) => Promise<OnchainTransfer[]>;
20
+ export declare const fetchHistPolygonBalance: (sdk: Alchemy, ps: {
21
+ addr: string;
22
+ blockNum?: number;
23
+ }, log?: RenderLogger) => Promise<number>;
24
+ //# sourceMappingURL=onchain.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onchain.d.ts","sourceRoot":"","sources":["../../../../src/client/onchain.ts"],"names":[],"mappings":"AACA,OAAO,EAAiB,YAAY,EAAE,MAAM,WAAW,CAAA;AAEvD,OAAO,EAAE,MAAM,EAAE,MAAM,0CAA0C,CAAA;AACjE,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAGrC,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,GAAG,CAAC,EAAE;QACJ,GAAG,EAAE,MAAM,CAAA;QACX,SAAS,EAAE,MAAM,CAAA;QACjB,MAAM,EAAE,MAAM,CAAA;QACd,cAAc,EAAE,MAAM,CAAA;QACtB,MAAM,EAAE,MAAM,CAAA;KACf,CAAA;CACF;AAED,eAAO,MAAM,cAAc,kBACV,QAAQ,MAAM,CAAC,sCAGd,MAAM,aACX,MAAM,KACd;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,QACjC,YAAY,KAChB,QAAQ,eAAe,EAAE,CAgH3B,CAAA;AAED,eAAO,MAAM,uBAAuB,QAC7B,OAAO,MACR;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,QAClC,YAAY,oBAyBlB,CAAA"}
@@ -0,0 +1,65 @@
1
+ import { Kysely, QueryCreator, Transaction } from 'kysely';
2
+ import { Pool, QueryResult } from 'pg';
3
+ import { RenderLogger } from '../../logger';
4
+ export type { DB } from '../../dbTypes';
5
+ export type { Channel, Symbol } from '../../dbTypesV2';
6
+ export interface PGHandle<DB> {
7
+ trx: QueryCreator<DB>;
8
+ commit: () => void;
9
+ rollback: () => void;
10
+ }
11
+ export interface PgConfig {
12
+ database: string;
13
+ host: string;
14
+ user: string;
15
+ password: string;
16
+ port?: number;
17
+ max?: number;
18
+ idleTimeoutMillis?: number;
19
+ }
20
+ export interface Job {
21
+ id: number;
22
+ completedAt: Date;
23
+ rndrUsed: bigint;
24
+ insertedAt?: Date;
25
+ obhUsed?: number;
26
+ }
27
+ export interface Burn {
28
+ id?: number;
29
+ jobs: Job[];
30
+ solTx: string;
31
+ executedAt: Date;
32
+ pricedAt: Date;
33
+ usdcSpent: bigint;
34
+ quoteAmt: bigint;
35
+ eurToUsdc?: number;
36
+ renderToUsdc?: number;
37
+ burned: bigint;
38
+ markedBurnedAt?: Date;
39
+ tags?: string[];
40
+ }
41
+ export declare class Deferred<T> {
42
+ #private;
43
+ constructor();
44
+ get promise(): Promise<T>;
45
+ resolve: (value: T | PromiseLike<T>) => void;
46
+ reject: (reason?: any) => void;
47
+ }
48
+ export declare function begin<DB>(db: Kysely<DB>, log: RenderLogger): Promise<{
49
+ trx: Transaction<DB>;
50
+ commit(): void;
51
+ rollback(): void;
52
+ }>;
53
+ export declare const intpSql: (sql: string, params?: ReadonlyArray<unknown>) => string;
54
+ /**
55
+ * Measure how long each phase of a query takes.
56
+ * returns the normal QueryResult so the rest of your code is untouched.
57
+ */
58
+ export declare function timedQuery(pool: Pool, text: string, values?: ReadonlyArray<unknown>, label?: string, log?: RenderLogger): Promise<QueryResult<any>>;
59
+ /**
60
+ * Patch a pg Pool so that every call to pool.query(...) is internally routed
61
+ * through timedQuery(), giving us per-statement breakdown without touching
62
+ * all the call sites.
63
+ */
64
+ export declare function attachTimedQueryLogger(pool: Pool, log?: RenderLogger): void;
65
+ //# sourceMappingURL=base.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../../src/client/pg/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAA;AAC1D,OAAO,EAAE,IAAI,EAAS,WAAW,EAAE,MAAM,IAAI,CAAA;AAE7C,OAAO,EAAiB,YAAY,EAAE,MAAM,cAAc,CACzD;AAID,YAAY,EAAE,EAAE,EAAE,MAAM,eAAe,CAAA;AACvC,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAEtD,MAAM,WAAW,QAAQ,CAAC,EAAE;IAC1B,GAAG,EAAE,YAAY,CAAC,EAAE,CAAC,CAAA;IACrB,MAAM,EAAE,MAAM,IAAI,CAAA;IAClB,QAAQ,EAAE,MAAM,IAAI,CAAA;CACrB;AAED,MAAM,WAAW,QAAQ;IACvB,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC3B;AAED,MAAM,WAAW,GAAG;IAClB,EAAE,EAAE,MAAM,CAAA;IACV,WAAW,EAAE,IAAI,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,CAAC,EAAE,IAAI,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,IAAI;IACnB,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,GAAG,EAAE,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,IAAI,CAAA;IAChB,QAAQ,EAAE,IAAI,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,MAAM,EAAE,MAAM,CAAA;IACd,cAAc,CAAC,EAAE,IAAI,CAAA;IACrB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;CAChB;AAED,qBAAa,QAAQ,CAAC,CAAC;;;IAarB,IAAI,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,CAExB;IAED,OAAO,UAAW,CAAC,GAAG,YAAY,CAAC,CAAC,KAAG,IAAI,CAI1C;IAED,MAAM,YAAa,GAAG,KAAG,IAAI,CAI5B;CACF;AAED,wBAAsB,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,YAAY;;;;GA8BhE;AAMD,eAAO,MAAM,OAAO,QACb,MAAM,WACH,cAAc,OAAO,CAAC,KAC7B,MAoBF,CAAA;AAED;;;GAGG;AACH,wBAAsB,UAAU,CAC9B,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,MAAM,EACZ,MAAM,GAAE,aAAa,CAAC,OAAO,CAAM,EACnC,KAAK,GAAE,MAAW,EAClB,GAAG,GAAE,YAA4B,GAChC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAiD3B;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,IAAI,EACV,GAAG,GAAE,YAA4B,QAwClC"}
@@ -0,0 +1,137 @@
1
+ import { DB } from '../../dbTypes';
2
+ import { Kysely, Transaction } from 'kysely';
3
+ import { RenderLogger } from '../../logger';
4
+ import { Channel, Symbol } from '../../dbTypesV2';
5
+ import { Burn, Job, PgConfig } from './base';
6
+ export type TransferType = 'open_compute_rewards' | 'node_operator_rewards' | 'upgrade_rewards' | 'availability_rewards';
7
+ export interface Transfer {
8
+ id?: bigint;
9
+ solKey?: string;
10
+ solTx?: string;
11
+ sqTx?: string;
12
+ createdAt?: Date;
13
+ payedAt?: Date;
14
+ amountDue: bigint;
15
+ amountPayed?: bigint;
16
+ fromSolKey?: string;
17
+ symbol?: Symbol;
18
+ channel: Channel;
19
+ operatorRewards?: NodeOperatorRewardsTransfer;
20
+ computeClientRewards?: ComputeClientsRewardsTransfer;
21
+ upgradeRewards?: UpgradeRewardsTransfer;
22
+ availabilityRewards?: AvailabilityRewardsTransfer;
23
+ }
24
+ export declare const transferTypToChan: (t: TransferType) => Channel;
25
+ export interface UpgradeRewardsTransfer {
26
+ epochId: number;
27
+ epochStartTime?: Date;
28
+ points: bigint;
29
+ }
30
+ export interface NodeOperatorRewardsTransfer {
31
+ epochId: number;
32
+ startTime: Date;
33
+ endTime: Date;
34
+ }
35
+ export interface ComputeClientsRewardsTransfer {
36
+ epochId: number;
37
+ deviceId: string;
38
+ }
39
+ export interface AvailabilityRewardsTransfer {
40
+ epochId: number;
41
+ deviceId: string;
42
+ }
43
+ export interface TransactionHandle<DB> {
44
+ trx: Transaction<DB>;
45
+ commit: () => void;
46
+ rollback: () => void;
47
+ }
48
+ export interface PgClient<DB> {
49
+ db: Kysely<DB>;
50
+ backfillBurn(p: Burn, log?: RenderLogger): Promise<void>;
51
+ updateComputeClientSolKey(deviceId: string, solKey: string, log?: RenderLogger): Promise<void>;
52
+ consumeAndLockBurnJobs(limit: number, lowerRndrThreshold: number, upperRndrThreshold: number, log?: RenderLogger): Promise<{
53
+ trx: TransactionHandle<DB>;
54
+ jobs: Job[];
55
+ }>;
56
+ fetchInfoForEpoch(epochId: bigint, log?: RenderLogger): Promise<{
57
+ jobIds: number[];
58
+ totalRndr: bigint;
59
+ startTime?: Date;
60
+ endTime?: Date;
61
+ burned: bigint;
62
+ burnTx?: string;
63
+ }>;
64
+ getOutstanding(f: {
65
+ typ: TransferType;
66
+ nullKey?: boolean;
67
+ due?: boolean;
68
+ }, log?: RenderLogger): Promise<Record<string, bigint>>;
69
+ fetchBurns(f: {
70
+ start?: Date;
71
+ end?: Date;
72
+ inclManual?: boolean;
73
+ }, log?: RenderLogger): Promise<Burn[]>;
74
+ createTransfers(transfers: Transfer[], log?: RenderLogger): Promise<void>;
75
+ fetchTransfers(f: {
76
+ epochId?: number;
77
+ payed?: boolean;
78
+ solKey?: string;
79
+ typ?: TransferType;
80
+ createdBefore?: Date;
81
+ start?: Date;
82
+ end?: Date;
83
+ sort?: 'solKey';
84
+ }, log?: RenderLogger): Promise<Transfer[]>;
85
+ payoutTransfer(id: bigint, payedAt: Date, solTx: string, amtPayed: bigint, log?: RenderLogger): Promise<void>;
86
+ payoutTransfers(idToAmt: Record<string, bigint>, payedAt: Date, solTx: string, log?: RenderLogger): Promise<void>;
87
+ getLatestNodeOperatorEpoch(log?: RenderLogger): Promise<{
88
+ epochId: bigint;
89
+ startedAt: Date;
90
+ endedAt: Date;
91
+ savedAt?: Date;
92
+ } | undefined>;
93
+ saveNodeOperatorEpoch(epochId: bigint, transfers: Transfer[], jobIds: number[], totalRndr: bigint, log?: RenderLogger): Promise<void>;
94
+ produceBurnedJobs(jobs: {
95
+ completedAt: Date;
96
+ jobId: number;
97
+ amount: number;
98
+ }[], log?: RenderLogger): Promise<void>;
99
+ markJobsBurnt(trx: Transaction<DB>, p: {
100
+ jobsIds: number[];
101
+ solTx: string;
102
+ burned: number;
103
+ usdcSpent?: number;
104
+ quoteAmt?: number;
105
+ pricedAt: Date;
106
+ executedAt: Date;
107
+ }, log?: RenderLogger): Promise<void>;
108
+ markJobsBurned(p: {
109
+ solTx: string;
110
+ markedAt: Date;
111
+ }, log?: RenderLogger): Promise<void>;
112
+ incrBuyBurnMetrics(log?: RenderLogger): Promise<{
113
+ outstandingJobs: number;
114
+ oldestJobFinishedAt?: Date;
115
+ }>;
116
+ deleteAll(): Promise<void>;
117
+ }
118
+ export declare const TRANSFER_TABLE = "transfer";
119
+ export declare const NODE_OPERATOR_REWARDS_TRANSFER_TABLE = "node_operator_rewards_transfer";
120
+ export declare const OPEN_COMPUTE_REWARDS_TRANSFER_TABLE = "open_compute_rewards_transfer";
121
+ export declare const AVAILABILITY_REWARDS_TRANSFER_TABLE = "availability_rewards_transfer";
122
+ export declare const UPGRADE_REWARDS_TRANSFER_TABLE = "upgrade_rewards_transfer";
123
+ export declare const SQUADS_TX_TABLE = "squads_tx";
124
+ export declare const NODE_OPERATOR_EPOCH_TABLE = "node_operator_epoch";
125
+ export declare const JOB_ID_TABLE = "job_id";
126
+ export declare const JOB_TABLE = "job";
127
+ export declare const BURN_TABLE = "burn";
128
+ export declare const NETWORK_REVENUE_TABLE = "network_revenue";
129
+ export declare const pgClient: (config: PgConfig) => PgClient<DB>;
130
+ export declare class Deferred<T> {
131
+ #private;
132
+ constructor();
133
+ get promise(): Promise<T>;
134
+ resolve: (value: T | PromiseLike<T>) => void;
135
+ reject: (reason?: any) => void;
136
+ }
137
+ //# sourceMappingURL=v1.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"v1.d.ts","sourceRoot":"","sources":["../../../../../src/client/pg/v1.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ export type { DB, Channel } from '../../dbTypesV2';
2
+ import { DB } from '../../dbTypesV2';
3
+ import { PgClient } from './v1';
4
+ import { PgConfig } from './base';
5
+ export interface UpgradeRewardsTransfer {
6
+ epochId: number;
7
+ epochStartTime?: Date;
8
+ points: bigint;
9
+ }
10
+ export interface NodeOperatorRewardsTransfer {
11
+ epochId: number;
12
+ startTime: Date;
13
+ endTime: Date;
14
+ }
15
+ export interface ComputeClientsRewardsTransfer {
16
+ epochId: number;
17
+ deviceId: string;
18
+ }
19
+ export declare const SOL_TX_TABLE = "sol_tx";
20
+ export declare const EPOCH_TABLE = "epoch";
21
+ export declare const MANUAL_BURN_TABLE = "manual_burn";
22
+ export declare const ENTITY_TABLE = "entity";
23
+ export declare const SOL_TRANSFER_TABLE = "sol_transfer";
24
+ export declare const SOL_TRANSFER_INFO_TABLE = "sol_transfer_info";
25
+ export declare const JOB_ID_TABLE = "job_id";
26
+ export declare const JOB_TABLE = "job";
27
+ export declare const BURN_TABLE = "burn";
28
+ export declare const pgClient: (config: PgConfig) => PgClient<DB>;
29
+ export declare class Deferred<T> {
30
+ #private;
31
+ constructor();
32
+ get promise(): Promise<T>;
33
+ resolve: (value: T | PromiseLike<T>) => void;
34
+ reject: (reason?: any) => void;
35
+ }
36
+ //# sourceMappingURL=v2.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"v2.d.ts","sourceRoot":"","sources":["../../../../../src/client/pg/v2.ts"],"names":[],"mappings":"AAWA,YAAY,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,EAAE,EAAE,EAAW,MAAM,iBAAiB,CAAA;AAC7C,OAAO,EACL,QAAQ,EAKT,MAAM,MAAM,CAAA;AAEb,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAA;AAgDjC,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,CAAA;IACf,cAAc,CAAC,EAAE,IAAI,CAAA;IACrB,MAAM,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,2BAA2B;IAC1C,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,IAAI,CAAA;IACf,OAAO,EAAE,IAAI,CAAA;CACd;AAED,MAAM,WAAW,6BAA6B;IAC5C,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,eAAO,MAAM,YAAY,WAAW,CAAA;AACpC,eAAO,MAAM,WAAW,UAAU,CAAA;AAClC,eAAO,MAAM,iBAAiB,gBAAgB,CAAA;AAC9C,eAAO,MAAM,YAAY,WAAW,CAAA;AACpC,eAAO,MAAM,kBAAkB,iBAAiB,CAAA;AAChD,eAAO,MAAM,uBAAuB,sBAAsB,CAAA;AAC1D,eAAO,MAAM,YAAY,WAAW,CAAA;AACpC,eAAO,MAAM,SAAS,QAAQ,CAAA;AAC9B,eAAO,MAAM,UAAU,SAAS,CAAA;AAEhC,eAAO,MAAM,QAAQ,WAAY,QAAQ,KAAG,SAAS,EAAE,CA64BtD,CAAA;AA8BD,qBAAa,QAAQ,CAAC,CAAC;;;IAarB,IAAI,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,CAExB;IAED,OAAO,UAAW,CAAC,GAAG,YAAY,CAAC,CAAC,KAAG,IAAI,CAI1C;IAED,MAAM,YAAa,GAAG,KAAG,IAAI,CAI5B;CACF"}
@@ -0,0 +1,273 @@
1
+ import { Transaction } from 'kysely';
2
+ import { RenderLogger } from '../../logger';
3
+ import { TransactionHandle } from './v1';
4
+ import { Burn, Channel, Job } from './base';
5
+ import { DB } from '../../dbTypesV2';
6
+ import { PoolConfig } from 'pg';
7
+ export declare const SOL_TX_TABLE = "sol_tx";
8
+ export declare const EPOCH_TABLE = "epoch";
9
+ export declare const MANUAL_BURN_TABLE = "manual_burn";
10
+ export declare const ENTITY_TABLE = "entity";
11
+ export declare const SOL_TRANSFER_TABLE = "sol_transfer1";
12
+ export declare const LIABILITY_TABLE = "liability";
13
+ export declare const JOB_ID_TABLE = "job_id";
14
+ export declare const JOB_TABLE = "job";
15
+ export declare const BURN_TABLE = "burn";
16
+ export declare const BRIDGE_TRANSFER_TABLE = "bridge_transfer";
17
+ export declare const NETWORK_REVENUE_TABLE = "network_revenue";
18
+ export declare const BURN_ADJUSTMENT_TABLE = "burn_adjustment";
19
+ export declare const ENTITY_EPOCH_INFO_TABLE = "entity_epoch_info";
20
+ export declare const POLYGON_UPGRADE_TABLE = "polygon_upgrade";
21
+ import { Symbol } from '../../dbTypesV2';
22
+ import { PGHandle } from './base';
23
+ export declare const batchFinishedAtMedian: (jobs: {
24
+ finishedAt: string;
25
+ jobId: number;
26
+ rndrUsed: number;
27
+ }[]) => Date;
28
+ export interface LiabilityInfo {
29
+ deviceId?: string;
30
+ points?: string;
31
+ }
32
+ export type BurnTag = '5pctfee' | 'eurUsdConvert';
33
+ export interface Liability {
34
+ id?: bigint;
35
+ solKey: string;
36
+ epochId: number;
37
+ channel: Channel;
38
+ createdAt?: Date;
39
+ amountDue: bigint;
40
+ deviceId?: string;
41
+ points?: bigint;
42
+ obhUsed?: number;
43
+ }
44
+ export interface EpochEntityInfo {
45
+ solKey: string;
46
+ epoch: Epoch | null;
47
+ aggregateObh: bigint;
48
+ }
49
+ export interface Epoch {
50
+ ui: number;
51
+ startTime: Date;
52
+ endTime: Date;
53
+ savedAt?: Date;
54
+ channel: Channel;
55
+ totalRndr?: number;
56
+ }
57
+ export interface Payment {
58
+ transfer?: Transfer;
59
+ liability?: Liability;
60
+ }
61
+ export interface Transfer {
62
+ id?: bigint;
63
+ fromSolKey: string;
64
+ toSolKey: string;
65
+ symbol: Symbol;
66
+ channel: Channel;
67
+ solTx: string;
68
+ executedAt: Date;
69
+ amountPayed: bigint;
70
+ }
71
+ export interface BridgeTransfer {
72
+ solKey: string;
73
+ seq: bigint;
74
+ createdAt: Date;
75
+ amount: bigint;
76
+ upgradeBracket?: number;
77
+ priorSupply: bigint;
78
+ points?: bigint;
79
+ epochId: number;
80
+ }
81
+ export interface LiabilityEpoch {
82
+ epochId: number;
83
+ channel: Channel;
84
+ start: Date;
85
+ end: Date;
86
+ amountDue: number;
87
+ metadataBySolKey: Record<string, {
88
+ obhUsed?: number;
89
+ }>;
90
+ }
91
+ export interface BurnAdjustment {
92
+ id: number;
93
+ createdAt: Date;
94
+ jobId: number;
95
+ downAdjRndrUsed: number;
96
+ downAdjToBurn: number;
97
+ adjusted: number;
98
+ job?: Job;
99
+ }
100
+ export interface PolygonUpgrade {
101
+ ethAddr: string;
102
+ solAddr: string;
103
+ amount: bigint;
104
+ solTx: {
105
+ sig: string;
106
+ executedAt: Date;
107
+ };
108
+ }
109
+ export interface PgClient<DB> {
110
+ db: PGHandle<DB>;
111
+ insertBurn(p: Burn, log?: RenderLogger): Promise<void>;
112
+ startTransaction(log?: RenderLogger): Promise<PGHandle<DB>>;
113
+ fetchJobs(db: PGHandle<DB>, f: {
114
+ completedAtAfter?: Date;
115
+ completedAtBefore?: Date;
116
+ burned?: boolean;
117
+ }, log?: RenderLogger): Promise<Job[]>;
118
+ createPayments(h: PGHandle<DB>, ix: Payment[], log?: RenderLogger): Promise<{
119
+ epochDbIds: bigint[];
120
+ inserted: {
121
+ transferId?: bigint;
122
+ liabilityId?: bigint;
123
+ }[];
124
+ }>;
125
+ createBridgeTransfers(db: PGHandle<DB>, bts: BridgeTransfer[], log?: RenderLogger): Promise<{
126
+ sequenceNumbers: bigint[];
127
+ }>;
128
+ getBridgeTransfers(f: {
129
+ solKey?: string;
130
+ page?: {
131
+ limit?: number;
132
+ cursor?: string;
133
+ };
134
+ }, log?: RenderLogger): Promise<{
135
+ bts: BridgeTransfer[];
136
+ cursor?: string;
137
+ }>;
138
+ getOutstanding(f: {
139
+ channels?: Channel[];
140
+ due?: 'overpayed' | 'underpayed';
141
+ banned?: boolean;
142
+ startEpochId: {
143
+ id?: number;
144
+ savedAtNotNull?: boolean;
145
+ };
146
+ }, log?: RenderLogger): Promise<Record<string, bigint>>;
147
+ getLiabilitiesAndTransfers(f: {
148
+ user: string;
149
+ }, log?: RenderLogger): Promise<{
150
+ liabilities: Liability[];
151
+ transfers: Transfer[];
152
+ epochs: Epoch[];
153
+ }>;
154
+ fetchLiabilities(db: PGHandle<DB>, f: {
155
+ epochId?: number;
156
+ epochEndedAtBefore?: Date;
157
+ epochEndedAtAfter?: Date;
158
+ channels?: Channel[];
159
+ limit?: number;
160
+ cursor?: string;
161
+ }, log?: RenderLogger): Promise<{
162
+ liabilities: (Liability & {
163
+ startTime: Date;
164
+ endTime: Date;
165
+ ui: number;
166
+ })[];
167
+ cursor?: string;
168
+ }>;
169
+ fetchEpochs(db: PGHandle<DB>, f: {
170
+ startTimeAfter?: Date;
171
+ endTimeBefore?: Date;
172
+ channels?: Channel[];
173
+ }, log?: RenderLogger): Promise<Epoch[]>;
174
+ saveNodeOperatorEpoch(epochId: bigint, liabilities: Liability[], jobIds: number[], totalRndr: bigint, log?: RenderLogger): Promise<void>;
175
+ fetchTransfers(db: PGHandle<DB>, f: {
176
+ executedAfter?: Date;
177
+ executedBefore?: Date;
178
+ channels?: Channel[];
179
+ limit?: number;
180
+ cursor?: string;
181
+ }, log?: RenderLogger): Promise<{
182
+ transfers: Transfer[];
183
+ cursor?: string;
184
+ }>;
185
+ fetchNodeOperatorEpoch(epochId: bigint, log?: RenderLogger): Promise<{
186
+ jobIds: number[];
187
+ totalRndr: bigint;
188
+ startTime?: Date;
189
+ endTime?: Date;
190
+ burned: bigint;
191
+ burnTx?: string;
192
+ solKeys: Record<string, {}>;
193
+ }>;
194
+ getLatestNodeOperatorEpoch(f: {
195
+ latestDistributed?: boolean;
196
+ }, log?: RenderLogger): Promise<{
197
+ epochId: bigint;
198
+ startedAt: Date;
199
+ endedAt: Date;
200
+ savedAt?: Date;
201
+ } | undefined>;
202
+ insertEpochEntityInfo(db: PGHandle<DB>, eei: EpochEntityInfo[], log?: RenderLogger): Promise<void>;
203
+ insertEpoch(db: PGHandle<DB>, epoch: Epoch, log?: RenderLogger): Promise<void>;
204
+ getEpoch(f: {
205
+ savedAtNotNull?: boolean;
206
+ channel: Channel;
207
+ epochId?: number;
208
+ }, log?: RenderLogger): Promise<Epoch | undefined>;
209
+ getLiabilitySolKeys(f: {
210
+ channel: Channel;
211
+ epoch?: number;
212
+ }): Promise<Record<string, {}>>;
213
+ consumeAndLockBurnJobs(limit: number, lowerRndrThreshold: number, upperRndrThreshold: number, log?: RenderLogger): Promise<{
214
+ trx: TransactionHandle<DB>;
215
+ jobs: Job[];
216
+ }>;
217
+ produceBurnedJobs(jobs: {
218
+ completedAt: Date;
219
+ jobId: number;
220
+ amount: number;
221
+ obhUsed: number;
222
+ }[], log?: RenderLogger): Promise<void>;
223
+ markJobsBurnt(trx: Transaction<DB>, p: {
224
+ jobsIds: number[];
225
+ solTx: string;
226
+ burned: number;
227
+ usdcSpent?: number;
228
+ eurToUsdc: number;
229
+ renderToUsdc?: number;
230
+ quoteAmt?: number;
231
+ pricedAt?: Date;
232
+ executedAt: Date;
233
+ tags: BurnTag[];
234
+ burnAdjustmentId?: number;
235
+ toBurn?: number;
236
+ }, log?: RenderLogger): Promise<void>;
237
+ markJobsBurned(p: {
238
+ solTx: string;
239
+ markedAt: Date;
240
+ }, log?: RenderLogger): Promise<void>;
241
+ incrBuyBurnMetrics(log?: RenderLogger): Promise<{
242
+ outstandingJobs: number;
243
+ oldestJobInsertedAt?: Date;
244
+ }>;
245
+ paymentMetrics(log?: RenderLogger): Promise<{
246
+ latestEpochId: number;
247
+ availabilityRewards: number;
248
+ nodeOperatorRewards: number;
249
+ renderComputeNetworkRewards: number;
250
+ }>;
251
+ getBurnAdjustments(trx: Transaction<DB>, ps: {
252
+ toFill: boolean;
253
+ }, log?: RenderLogger): Promise<BurnAdjustment[]>;
254
+ fetchBurns(db: PGHandle<DB>, f: {
255
+ executedAfter?: Date;
256
+ executedBefore?: Date;
257
+ pricedAtBefore?: Date;
258
+ pricedAtAfter?: Date;
259
+ inclManual?: boolean;
260
+ orderBy?: 'executedAt' | 'pricedAt';
261
+ inclJobs?: boolean;
262
+ }, log?: RenderLogger): Promise<Burn[]>;
263
+ getTotalBurned(db: PGHandle<DB>): Promise<BigInt>;
264
+ fetchLiabilityEpochs(db: PGHandle<DB>, log?: RenderLogger): Promise<LiabilityEpoch[]>;
265
+ insertPolygonUpgrade(db: PGHandle<DB>, p: PolygonUpgrade, log?: RenderLogger): Promise<void>;
266
+ fetchPolygonUpgrades(db: PGHandle<DB>, f: {
267
+ executedAfter?: Date;
268
+ executedBefore?: Date;
269
+ }, log?: RenderLogger): Promise<PolygonUpgrade[]>;
270
+ deleteAll(): Promise<void>;
271
+ }
272
+ export declare const pgClient: (config: PoolConfig) => PgClient<DB>;
273
+ //# sourceMappingURL=v2Client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"v2Client.d.ts","sourceRoot":"","sources":["../../../../../src/client/pg/v2Client.ts"],"names":[],"mappings":"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"}