@render-foundation/utils 0.0.78 → 0.0.79

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 (86) hide show
  1. package/lib/cjs/client/onchain.js +109 -0
  2. package/lib/cjs/client/onchain.js.map +1 -0
  3. package/lib/cjs/client/pg/v1.js +623 -0
  4. package/lib/cjs/client/pg/v1.js.map +1 -0
  5. package/lib/cjs/client/pg/v2.js +840 -0
  6. package/lib/cjs/client/pg/v2.js.map +1 -0
  7. package/lib/cjs/client/pg/v2Client.js +770 -0
  8. package/lib/cjs/client/pg/v2Client.js.map +1 -0
  9. package/lib/cjs/client/price.js +46 -0
  10. package/lib/cjs/client/price.js.map +1 -0
  11. package/lib/cjs/client/render.js +164 -0
  12. package/lib/cjs/client/render.js.map +1 -0
  13. package/lib/cjs/client/squads.js +204 -0
  14. package/lib/cjs/client/squads.js.map +1 -0
  15. package/lib/cjs/client/trade.js +127 -0
  16. package/lib/cjs/client/trade.js.map +1 -0
  17. package/lib/cjs/client/wormhole.js +69 -0
  18. package/lib/cjs/client/wormhole.js.map +1 -0
  19. package/lib/cjs/dbTypes.js +3 -0
  20. package/lib/cjs/dbTypes.js.map +1 -0
  21. package/lib/cjs/dbTypesV2.js +3 -0
  22. package/lib/cjs/dbTypesV2.js.map +1 -0
  23. package/lib/cjs/errorReporter.js +77 -0
  24. package/lib/cjs/errorReporter.js.map +1 -0
  25. package/lib/cjs/index.js +41 -0
  26. package/lib/cjs/index.js.map +1 -0
  27. package/lib/cjs/logger.js +21 -0
  28. package/lib/cjs/logger.js.map +1 -0
  29. package/lib/esm/src/client/onchain.js +100 -0
  30. package/lib/esm/src/client/onchain.js.map +1 -0
  31. package/lib/esm/src/client/pg/v1.js +559 -0
  32. package/lib/esm/src/client/pg/v1.js.map +1 -0
  33. package/lib/esm/src/client/pg/v2.js +774 -0
  34. package/lib/esm/src/client/pg/v2.js.map +1 -0
  35. package/lib/esm/src/client/pg/v2Client.js +710 -0
  36. package/lib/esm/src/client/pg/v2Client.js.map +1 -0
  37. package/lib/esm/src/client/price.js +32 -0
  38. package/lib/esm/src/client/price.js.map +1 -0
  39. package/lib/esm/src/client/render.js +138 -0
  40. package/lib/esm/src/client/render.js.map +1 -0
  41. package/lib/esm/src/client/squads.js +163 -0
  42. package/lib/esm/src/client/squads.js.map +1 -0
  43. package/lib/esm/src/client/trade.js +114 -0
  44. package/lib/esm/src/client/trade.js.map +1 -0
  45. package/lib/esm/src/client/wormhole.js +33 -0
  46. package/lib/esm/src/client/wormhole.js.map +1 -0
  47. package/lib/esm/src/dbTypes.js +2 -0
  48. package/lib/esm/src/dbTypes.js.map +1 -0
  49. package/lib/esm/src/dbTypesV2.js +2 -0
  50. package/lib/esm/src/dbTypesV2.js.map +1 -0
  51. package/lib/esm/src/errorReporter.js +68 -0
  52. package/lib/esm/src/errorReporter.js.map +1 -0
  53. package/lib/esm/src/index.js +12 -0
  54. package/lib/esm/src/index.js.map +1 -0
  55. package/lib/esm/src/logger.js +18 -0
  56. package/lib/esm/src/logger.js.map +1 -0
  57. package/lib/esm/tsconfig.esm.tsbuildinfo +1 -0
  58. package/lib/types/src/client/onchain.d.ts +19 -0
  59. package/lib/types/src/client/onchain.d.ts.map +1 -0
  60. package/lib/types/src/client/pg/v1.d.ts +163 -0
  61. package/lib/types/src/client/pg/v1.d.ts.map +1 -0
  62. package/lib/types/src/client/pg/v2.d.ts +35 -0
  63. package/lib/types/src/client/pg/v2.d.ts.map +1 -0
  64. package/lib/types/src/client/pg/v2Client.d.ts +142 -0
  65. package/lib/types/src/client/pg/v2Client.d.ts.map +1 -0
  66. package/lib/types/src/client/price.d.ts +11 -0
  67. package/lib/types/src/client/price.d.ts.map +1 -0
  68. package/lib/types/src/client/render.d.ts +19 -0
  69. package/lib/types/src/client/render.d.ts.map +1 -0
  70. package/lib/types/src/client/squads.d.ts +17 -0
  71. package/lib/types/src/client/squads.d.ts.map +1 -0
  72. package/lib/types/src/client/trade.d.ts +15 -0
  73. package/lib/types/src/client/trade.d.ts.map +1 -0
  74. package/lib/types/src/client/wormhole.d.ts +9 -0
  75. package/lib/types/src/client/wormhole.d.ts.map +1 -0
  76. package/lib/types/src/dbTypes.d.ts +123 -0
  77. package/lib/types/src/dbTypes.d.ts.map +1 -0
  78. package/lib/types/src/dbTypesV2.d.ts +109 -0
  79. package/lib/types/src/dbTypesV2.d.ts.map +1 -0
  80. package/lib/types/src/errorReporter.d.ts +12 -0
  81. package/lib/types/src/errorReporter.d.ts.map +1 -0
  82. package/lib/types/src/index.d.ts +12 -0
  83. package/lib/types/src/index.d.ts.map +1 -0
  84. package/lib/types/src/logger.d.ts +16 -0
  85. package/lib/types/src/logger.d.ts.map +1 -0
  86. package/package.json +1 -1
@@ -0,0 +1,19 @@
1
+ import { RenderLogger } from '../logger';
2
+ import { Bridge } from '@render-foundation/idls/lib/types/bridge';
3
+ import { Program } from '@coral-xyz/anchor';
4
+ export interface OnchainTransfer {
5
+ ethTx?: string;
6
+ blockNo?: number;
7
+ pda?: {
8
+ key: string;
9
+ createdAt: number;
10
+ amount: number;
11
+ incentiveRound: string;
12
+ points: string;
13
+ };
14
+ }
15
+ export declare const fetchTransfers: (bridgeProgram: Program<Bridge>, erc20Contract: any, ethTokenBridge: string, fromBlock: number, f: {
16
+ solKey: string;
17
+ ethKey?: string;
18
+ }, log?: RenderLogger) => Promise<OnchainTransfer[]>;
19
+ //# 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;AAE3C,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"}
@@ -0,0 +1,163 @@
1
+ import { DB } from '../../dbTypes';
2
+ import { Kysely, Transaction } from 'kysely';
3
+ import { RenderLogger } from '../../logger';
4
+ import { Channel, Symbol } from '../../dbTypesV2';
5
+ export type { DB } from '../../dbTypes';
6
+ export type { Channel, Symbol } from '../../dbTypesV2';
7
+ export type TransferType = 'open_compute_rewards' | 'node_operator_rewards' | 'upgrade_rewards' | 'availability_rewards';
8
+ export interface Transfer {
9
+ id?: bigint;
10
+ solKey?: string;
11
+ solTx?: string;
12
+ sqTx?: string;
13
+ createdAt?: Date;
14
+ payedAt?: Date;
15
+ amountDue: bigint;
16
+ amountPayed?: bigint;
17
+ fromSolKey?: string;
18
+ symbol?: Symbol;
19
+ channel: Channel;
20
+ operatorRewards?: NodeOperatorRewardsTransfer;
21
+ computeClientRewards?: ComputeClientsRewardsTransfer;
22
+ upgradeRewards?: UpgradeRewardsTransfer;
23
+ availabilityRewards?: AvailabilityRewardsTransfer;
24
+ }
25
+ export interface Job {
26
+ id: number;
27
+ completedAt: Date;
28
+ rndrUsed: bigint;
29
+ insertedAt?: Date;
30
+ }
31
+ export interface Burn {
32
+ id?: number;
33
+ jobs: Job[];
34
+ solTx: string;
35
+ executedAt: Date;
36
+ pricedAt: Date;
37
+ usdcSpent: bigint;
38
+ quoteAmt: bigint;
39
+ burned: bigint;
40
+ markedBurnedAt?: Date;
41
+ }
42
+ export declare const transferTypToChan: (t: TransferType) => Channel;
43
+ export interface UpgradeRewardsTransfer {
44
+ epochId: number;
45
+ epochStartTime?: Date;
46
+ points: bigint;
47
+ }
48
+ export interface NodeOperatorRewardsTransfer {
49
+ epochId: number;
50
+ startTime: Date;
51
+ endTime: Date;
52
+ }
53
+ export interface ComputeClientsRewardsTransfer {
54
+ epochId: number;
55
+ deviceId: string;
56
+ }
57
+ export interface AvailabilityRewardsTransfer {
58
+ epochId: number;
59
+ deviceId: string;
60
+ }
61
+ export interface TransactionHandle<DB> {
62
+ trx: Transaction<DB>;
63
+ commit: () => void;
64
+ rollback: () => void;
65
+ }
66
+ export interface PgClient<DB> {
67
+ db: Kysely<DB>;
68
+ backfillBurn(p: Burn, log?: RenderLogger): Promise<void>;
69
+ updateComputeClientSolKey(deviceId: string, solKey: string, log?: RenderLogger): Promise<void>;
70
+ consumeAndLockBurnJobs(limit: number, lowerRndrThreshold: number, upperRndrThreshold: number, log?: RenderLogger): Promise<{
71
+ trx: TransactionHandle<DB>;
72
+ jobs: Job[];
73
+ }>;
74
+ fetchInfoForEpoch(epochId: bigint, log?: RenderLogger): Promise<{
75
+ jobIds: number[];
76
+ totalRndr: bigint;
77
+ startTime?: Date;
78
+ endTime?: Date;
79
+ burned: bigint;
80
+ burnTx?: string;
81
+ }>;
82
+ getOutstanding(f: {
83
+ typ: TransferType;
84
+ nullKey?: boolean;
85
+ due?: boolean;
86
+ }, log?: RenderLogger): Promise<Record<string, bigint>>;
87
+ fetchBurns(f: {
88
+ start?: Date;
89
+ end?: Date;
90
+ inclManual?: boolean;
91
+ }, log?: RenderLogger): Promise<Burn[]>;
92
+ createTransfers(transfers: Transfer[], log?: RenderLogger): Promise<void>;
93
+ fetchTransfers(f: {
94
+ epochId?: number;
95
+ payed?: boolean;
96
+ solKey?: string;
97
+ typ?: TransferType;
98
+ createdBefore?: Date;
99
+ start?: Date;
100
+ end?: Date;
101
+ sort?: 'solKey';
102
+ }, log?: RenderLogger): Promise<Transfer[]>;
103
+ payoutTransfer(id: bigint, payedAt: Date, solTx: string, amtPayed: bigint, log?: RenderLogger): Promise<void>;
104
+ payoutTransfers(idToAmt: Record<string, bigint>, payedAt: Date, solTx: string, log?: RenderLogger): Promise<void>;
105
+ getLatestNodeOperatorEpoch(log?: RenderLogger): Promise<{
106
+ epochId: bigint;
107
+ startedAt: Date;
108
+ endedAt: Date;
109
+ savedAt?: Date;
110
+ } | undefined>;
111
+ saveNodeOperatorEpoch(epochId: bigint, transfers: Transfer[], jobIds: number[], totalRndr: bigint, log?: RenderLogger): Promise<void>;
112
+ produceBurnedJobs(jobs: {
113
+ completedAt: Date;
114
+ jobId: number;
115
+ amount: number;
116
+ }[], log?: RenderLogger): Promise<void>;
117
+ markJobsBurnt(trx: Transaction<DB>, p: {
118
+ jobsIds: number[];
119
+ solTx: string;
120
+ burned: number;
121
+ usdcSpent?: number;
122
+ quoteAmt?: number;
123
+ pricedAt: Date;
124
+ executedAt: Date;
125
+ }, log?: RenderLogger): Promise<void>;
126
+ markJobsBurned(p: {
127
+ solTx: string;
128
+ markedAt: Date;
129
+ }, log?: RenderLogger): Promise<void>;
130
+ incrBuyBurnMetrics(log?: RenderLogger): Promise<{
131
+ outstandingJobs: number;
132
+ oldestJobFinishedAt?: Date;
133
+ }>;
134
+ deleteAll(): Promise<void>;
135
+ }
136
+ export declare const TRANSFER_TABLE = "transfer";
137
+ export declare const NODE_OPERATOR_REWARDS_TRANSFER_TABLE = "node_operator_rewards_transfer";
138
+ export declare const OPEN_COMPUTE_REWARDS_TRANSFER_TABLE = "open_compute_rewards_transfer";
139
+ export declare const AVAILABILITY_REWARDS_TRANSFER_TABLE = "availability_rewards_transfer";
140
+ export declare const UPGRADE_REWARDS_TRANSFER_TABLE = "upgrade_rewards_transfer";
141
+ export declare const SQUADS_TX_TABLE = "squads_tx";
142
+ export declare const NODE_OPERATOR_EPOCH_TABLE = "node_operator_epoch";
143
+ export declare const JOB_ID_TABLE = "job_id";
144
+ export declare const JOB_TABLE = "job";
145
+ export declare const BURN_TABLE = "burn";
146
+ export declare const NETWORK_REVENUE_TABLE = "network_revenue";
147
+ export interface PgConfig {
148
+ database: string;
149
+ host: string;
150
+ user: string;
151
+ password: string;
152
+ port?: number;
153
+ max?: number;
154
+ }
155
+ export declare const pgClient: (config: PgConfig) => PgClient<DB>;
156
+ export declare class Deferred<T> {
157
+ #private;
158
+ constructor();
159
+ get promise(): Promise<T>;
160
+ resolve: (value: T | PromiseLike<T>) => void;
161
+ reject: (reason?: any) => void;
162
+ }
163
+ //# 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,35 @@
1
+ export type { DB, Channel } from '../../dbTypesV2';
2
+ import { DB } from '../../dbTypesV2';
3
+ import { PgClient, PgConfig } from './v1';
4
+ export interface UpgradeRewardsTransfer {
5
+ epochId: number;
6
+ epochStartTime?: Date;
7
+ points: bigint;
8
+ }
9
+ export interface NodeOperatorRewardsTransfer {
10
+ epochId: number;
11
+ startTime: Date;
12
+ endTime: Date;
13
+ }
14
+ export interface ComputeClientsRewardsTransfer {
15
+ epochId: number;
16
+ deviceId: string;
17
+ }
18
+ export declare const SOL_TX_TABLE = "sol_tx";
19
+ export declare const EPOCH_TABLE = "epoch";
20
+ export declare const MANUAL_BURN_TABLE = "manual_burn";
21
+ export declare const ENTITY_TABLE = "entity";
22
+ export declare const SOL_TRANSFER_TABLE = "sol_transfer";
23
+ export declare const SOL_TRANSFER_INFO_TABLE = "sol_transfer_info";
24
+ export declare const JOB_ID_TABLE = "job_id";
25
+ export declare const JOB_TABLE = "job";
26
+ export declare const BURN_TABLE = "burn";
27
+ export declare const pgClient: (config: PgConfig) => PgClient<DB>;
28
+ export declare class Deferred<T> {
29
+ #private;
30
+ constructor();
31
+ get promise(): Promise<T>;
32
+ resolve: (value: T | PromiseLike<T>) => void;
33
+ reject: (reason?: any) => void;
34
+ }
35
+ //# 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,EAEL,QAAQ,EACR,QAAQ,EAMT,MAAM,MAAM,CAAA;AAgDb,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,142 @@
1
+ import { QueryCreator, Transaction } from 'kysely';
2
+ import { RenderLogger } from '../../logger';
3
+ import { Channel, Job, PgConfig, TransactionHandle } from './v1';
4
+ import { DB } from '../../dbTypesV2';
5
+ export declare const SOL_TX_TABLE = "sol_tx";
6
+ export declare const EPOCH_TABLE = "epoch";
7
+ export declare const MANUAL_BURN_TABLE = "manual_burn";
8
+ export declare const ENTITY_TABLE = "entity";
9
+ export declare const SOL_TRANSFER_TABLE = "sol_transfer1";
10
+ export declare const LIABILITY_TABLE = "liability";
11
+ export declare const JOB_ID_TABLE = "job_id";
12
+ export declare const JOB_TABLE = "job";
13
+ export declare const BURN_TABLE = "burn";
14
+ import { Symbol } from '../../dbTypesV2';
15
+ export interface LiabilityInfo {
16
+ deviceId?: string;
17
+ points?: string;
18
+ }
19
+ export interface Liability {
20
+ id?: bigint;
21
+ solKey: string;
22
+ epochId: number;
23
+ channel: Channel;
24
+ createdAt?: Date;
25
+ amountDue: bigint;
26
+ deviceId?: string;
27
+ points?: bigint;
28
+ }
29
+ export interface Epoch {
30
+ ui: number;
31
+ startTime: Date;
32
+ endTime: Date;
33
+ channel: Channel;
34
+ }
35
+ export interface Payment {
36
+ transfer?: Transfer;
37
+ liability?: Liability;
38
+ }
39
+ export interface Transfer {
40
+ id?: bigint;
41
+ fromSolKey: string;
42
+ toSolKey: string;
43
+ symbol: Symbol;
44
+ channel: Channel;
45
+ solTx: string;
46
+ executedAt: Date;
47
+ amountPayed: bigint;
48
+ }
49
+ export interface PGHandle<DB> {
50
+ trx: QueryCreator<DB>;
51
+ commit: () => void;
52
+ rollback: () => void;
53
+ }
54
+ export interface PgClient<DB> {
55
+ db: PGHandle<DB>;
56
+ startTransaction(): Promise<PGHandle<DB>>;
57
+ createPayments(h: PGHandle<DB>, ix: Payment[], log?: RenderLogger): Promise<{
58
+ epochDbIds: bigint[];
59
+ inserted: {
60
+ transferId?: bigint;
61
+ liabilityId?: bigint;
62
+ }[];
63
+ }>;
64
+ getOutstanding(f: {
65
+ channels?: Channel[];
66
+ due?: 'overpayed' | 'underpayed';
67
+ banned?: boolean;
68
+ }, log?: RenderLogger): Promise<Record<string, bigint>>;
69
+ getLiabilitiesAndTransfers(f: {
70
+ user: string;
71
+ }, log?: RenderLogger): Promise<{
72
+ liabilities: Liability[];
73
+ transfers: Transfer[];
74
+ epochs: Epoch[];
75
+ }>;
76
+ saveNodeOperatorEpoch(epochId: bigint, liabilities: Liability[], jobIds: number[], totalRndr: bigint, log?: RenderLogger): Promise<void>;
77
+ fetchTransfers(db: PGHandle<DB>, f: {
78
+ executedAfter?: Date;
79
+ executedBefore?: Date;
80
+ channel?: Channel;
81
+ limit?: number;
82
+ cursor?: string;
83
+ }): Promise<{
84
+ transfers: Transfer[];
85
+ cursor?: string;
86
+ }>;
87
+ fetchNodeOperatorEpoch(epochId: bigint, log?: RenderLogger): Promise<{
88
+ jobIds: number[];
89
+ totalRndr: bigint;
90
+ startTime?: Date;
91
+ endTime?: Date;
92
+ burned: bigint;
93
+ burnTx?: string;
94
+ solKeys: Record<string, {}>;
95
+ }>;
96
+ getLatestNodeOperatorEpoch(log?: RenderLogger): Promise<{
97
+ epochId: bigint;
98
+ startedAt: Date;
99
+ endedAt: Date;
100
+ savedAt?: Date;
101
+ } | undefined>;
102
+ getLiabilitySolKeys(f: {
103
+ channel: Channel;
104
+ epoch?: number;
105
+ }): Promise<Record<string, {}>>;
106
+ consumeAndLockBurnJobs(limit: number, lowerRndrThreshold: number, upperRndrThreshold: number, log?: RenderLogger): Promise<{
107
+ trx: TransactionHandle<DB>;
108
+ jobs: Job[];
109
+ }>;
110
+ produceBurnedJobs(jobs: {
111
+ completedAt: Date;
112
+ jobId: number;
113
+ amount: number;
114
+ }[], log?: RenderLogger): Promise<void>;
115
+ markJobsBurnt(trx: Transaction<DB>, p: {
116
+ jobsIds: number[];
117
+ solTx: string;
118
+ burned: number;
119
+ usdcSpent?: number;
120
+ quoteAmt?: number;
121
+ pricedAt: Date;
122
+ executedAt: Date;
123
+ }, log?: RenderLogger): Promise<void>;
124
+ markJobsBurned(p: {
125
+ solTx: string;
126
+ markedAt: Date;
127
+ }, log?: RenderLogger): Promise<void>;
128
+ incrBuyBurnMetrics(log?: RenderLogger): Promise<{
129
+ outstandingJobs: number;
130
+ oldestJobFinishedAt?: Date;
131
+ }>;
132
+ deleteAll(): Promise<void>;
133
+ }
134
+ export declare const pgClient: (config: PgConfig) => PgClient<DB>;
135
+ export declare class Deferred<T> {
136
+ #private;
137
+ constructor();
138
+ get promise(): Promise<T>;
139
+ resolve: (value: T | PromiseLike<T>) => void;
140
+ reject: (reason?: any) => void;
141
+ }
142
+ //# 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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"}
@@ -0,0 +1,11 @@
1
+ export type Datasource = 'binance' | 'coingecko';
2
+ export interface PriceClient {
3
+ getRenderPriceAtDate(p: {
4
+ symbol?: string;
5
+ ex?: Datasource;
6
+ ts: Date;
7
+ }): Promise<number>;
8
+ getCurrPrice(): Promise<number>;
9
+ }
10
+ export declare const coinGeckoClient: () => PriceClient;
11
+ //# sourceMappingURL=price.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"price.d.ts","sourceRoot":"","sources":["../../../../src/client/price.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,WAAW,CAAA;AAEhD,MAAM,WAAW,WAAW;IAC1B,oBAAoB,CAAC,CAAC,EAAE;QACtB,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,EAAE,CAAC,EAAE,UAAU,CAAA;QACf,EAAE,EAAE,IAAI,CAAA;KACT,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IAEnB,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,CAAA;CAChC;AAED,eAAO,MAAM,eAAe,QAAO,WAwClC,CAAA"}
@@ -0,0 +1,19 @@
1
+ import { RenderLogger } from '../logger';
2
+ export interface RenderClient {
3
+ fetchCompletedJobs(limit: number, finishedAfter?: Date, finishedBefore?: Date, log?: RenderLogger): Promise<{
4
+ jobId: number;
5
+ finishedAt: Date;
6
+ rndrUsed: number;
7
+ }[]>;
8
+ markJobsBurned(ids: number[], totalBurned: number, log?: RenderLogger): Promise<void>;
9
+ fetchNodeOperatorRewards(startTime: Date, endTime: Date, log?: RenderLogger): Promise<{
10
+ jobIds: number[];
11
+ solKeyToDue: Record<string, number>;
12
+ }>;
13
+ markJobsPayed(ids: number[], finishedAfter: Date, finishedBefore: Date, totalDistributed: number, log?: RenderLogger): Promise<void>;
14
+ fetchNetworkRevenue(startTime: Date, endTime: Date, log?: RenderLogger): Promise<{
15
+ usdSpent: number;
16
+ }>;
17
+ }
18
+ export declare const renderClient: (authToken: string) => RenderClient;
19
+ //# sourceMappingURL=render.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../../../src/client/render.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,YAAY,EAAE,MAAM,WAAW,CAAA;AAGvD,MAAM,WAAW,YAAY;IAC3B,kBAAkB,CAChB,KAAK,EAAE,MAAM,EACb,aAAa,CAAC,EAAE,IAAI,EACpB,cAAc,CAAC,EAAE,IAAI,EACrB,GAAG,CAAC,EAAE,YAAY,GACjB,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,IAAI,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC,CAAA;IAEnE,cAAc,CACZ,GAAG,EAAE,MAAM,EAAE,EACb,WAAW,EAAE,MAAM,EACnB,GAAG,CAAC,EAAE,YAAY,GACjB,OAAO,CAAC,IAAI,CAAC,CAAA;IAEhB,wBAAwB,CACtB,SAAS,EAAE,IAAI,EACf,OAAO,EAAE,IAAI,EACb,GAAG,CAAC,EAAE,YAAY,GACjB,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,CAAC,CAAA;IAErE,aAAa,CACX,GAAG,EAAE,MAAM,EAAE,EACb,aAAa,EAAE,IAAI,EACnB,cAAc,EAAE,IAAI,EACpB,gBAAgB,EAAE,MAAM,EACxB,GAAG,CAAC,EAAE,YAAY,GACjB,OAAO,CAAC,IAAI,CAAC,CAAA;IAEhB,mBAAmB,CACjB,SAAS,EAAE,IAAI,EACf,OAAO,EAAE,IAAI,EACb,GAAG,CAAC,EAAE,YAAY,GACjB,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CACjC;AAgCD,eAAO,MAAM,YAAY,cAAe,MAAM,KAAG,YA2LhD,CAAA"}
@@ -0,0 +1,17 @@
1
+ import Squads from '@sqds/sdk';
2
+ import { Connection, PublicKey, Signer, TransactionInstruction } from '@solana/web3.js';
3
+ import { PriorityLevel } from '@render-foundation/spl-utils';
4
+ import { RenderLogger } from '../logger';
5
+ export interface SquadsTx {
6
+ pda: PublicKey;
7
+ transactionIndex: bigint;
8
+ }
9
+ export declare const createSqV4Transaction: (connection: Connection, multisigPda: PublicKey, initialApprovers: Signer[], instrs: TransactionInstruction[], log?: RenderLogger, prioFee?: number) => Promise<SquadsTx>;
10
+ export declare const executeSqV4Transaction: (connection: Connection, sqTx: SquadsTx, multisigPda: PublicKey, approvers: Signer[], instrs: TransactionInstruction[], log?: RenderLogger, prioFee?: number) => Promise<{
11
+ txSig: string;
12
+ }>;
13
+ export declare const executeSqV3Transaction: (connection: Connection, squadsMsKey: PublicKey, clients: Squads[], instrs: TransactionInstruction[], log?: RenderLogger, startPrio?: PriorityLevel) => Promise<{
14
+ txSig: string;
15
+ txPDA: PublicKey;
16
+ }>;
17
+ //# sourceMappingURL=squads.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"squads.d.ts","sourceRoot":"","sources":["../../../../src/client/squads.ts"],"names":[],"mappings":"AAAA,OAAO,MAIN,MAAM,WAAW,CAAA;AAGlB,OAAO,EAEL,UAAU,EACV,SAAS,EACT,MAAM,EAEN,sBAAsB,EAGvB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACL,aAAa,EAGd,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAAiB,YAAY,EAAE,MAAM,WAAW,CAAA;AAIvD,MAAM,WAAW,QAAQ;IACvB,GAAG,EAAE,SAAS,CAAA;IACd,gBAAgB,EAAE,MAAM,CAAA;CACzB;AAED,eAAO,MAAM,qBAAqB,eACpB,UAAU,eACT,SAAS,oBACJ,MAAM,EAAE,UAClB,sBAAsB,EAAE,QAC3B,YAAY,YACR,MAAM,KACd,QAAQ,QAAQ,CA0FlB,CAAA;AAED,eAAO,MAAM,sBAAsB,eACrB,UAAU,QAChB,QAAQ,eACD,SAAS,aACX,MAAM,EAAE,UACX,sBAAsB,EAAE,QAC3B,YAAY,YACR,MAAM,KACd,QAAQ;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAoD3B,CAAA;AAED,eAAO,MAAM,sBAAsB,eACrB,UAAU,eACT,SAAS,WACb,MAAM,EAAE,UACT,sBAAsB,EAAE,QAC3B,YAAY,cACN,aAAa;WACN,MAAM;WAAS,SAAS;EAyE3C,CAAA"}
@@ -0,0 +1,15 @@
1
+ import { AddressLookupTableAccount, Connection, Signer, TransactionInstruction } from '@solana/web3.js';
2
+ import { RenderLogger } from '../logger';
3
+ export interface TradeClient {
4
+ createTradeInstructions(f: {
5
+ renderAmount: number;
6
+ slippage?: number;
7
+ maxAccounts?: number;
8
+ }, log?: RenderLogger): Promise<{
9
+ quoteAmount: number;
10
+ instructions: TransactionInstruction[];
11
+ addressLookupTableAccounts: AddressLookupTableAccount[];
12
+ }>;
13
+ }
14
+ export declare const jupClient: (connection: Connection, funder: Signer) => TradeClient;
15
+ //# sourceMappingURL=trade.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trade.d.ts","sourceRoot":"","sources":["../../../../src/client/trade.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,yBAAyB,EACzB,UAAU,EAEV,MAAM,EACN,sBAAsB,EACvB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,YAAY,EAAiB,MAAM,WAAW,CAAA;AAEvD,MAAM,WAAW,WAAW;IAC1B,uBAAuB,CACrB,CAAC,EAAE;QACD,YAAY,EAAE,MAAM,CAAA;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,WAAW,CAAC,EAAE,MAAM,CAAA;KACrB,EACD,GAAG,CAAC,EAAE,YAAY,GACjB,OAAO,CAAC;QACT,WAAW,EAAE,MAAM,CAAA;QACnB,YAAY,EAAE,sBAAsB,EAAE,CAAA;QACtC,0BAA0B,EAAE,yBAAyB,EAAE,CAAA;KACxD,CAAC,CAAA;CACH;AAQD,eAAO,MAAM,SAAS,eACR,UAAU,UACd,MAAM,KACb,WA2KF,CAAA"}
@@ -0,0 +1,9 @@
1
+ import { RenderLogger } from '../logger';
2
+ export type EthInfo = {
3
+ originTx: {
4
+ txHash: string;
5
+ from: string;
6
+ };
7
+ };
8
+ export declare const fetchEthInfo: (seq: number, ethereumTokenBridgeAddr: string, wormEnv?: 'MAINNET' | 'TESTNET', ethChainId?: number, retries?: number, log?: RenderLogger) => Promise<[number, EthInfo]>;
9
+ //# sourceMappingURL=wormhole.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wormhole.d.ts","sourceRoot":"","sources":["../../../../src/client/wormhole.ts"],"names":[],"mappings":"AACA,OAAO,EAAiB,YAAY,EAAE,MAAM,WAAW,CAAA;AAEvD,MAAM,MAAM,OAAO,GAAG;IAAE,QAAQ,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAA;AAEpE,eAAO,MAAM,YAAY,QAClB,MAAM,2BACc,MAAM,YACtB,SAAS,GAAG,SAAS,eAClB,MAAM,0BAEb,YAAY,KAChB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CA4C3B,CAAA"}
@@ -0,0 +1,123 @@
1
+ import type { ColumnType } from "kysely";
2
+ export type Generated<T> = T extends ColumnType<infer S, infer I, infer U> ? ColumnType<S, I | undefined, U> : ColumnType<T, T | undefined, T>;
3
+ export type Int8 = ColumnType<string, bigint | number | string, bigint | number | string>;
4
+ export type Timestamp = ColumnType<Date, Date | string, Date | string>;
5
+ export type TransferType = "availability_rewards" | "node_operator_rewards" | "open_compute_rewards" | "upgrade_rewards";
6
+ export type TxStatus = "created" | "executed" | "ready";
7
+ export interface AvailabilityRewardsTransfer {
8
+ device_id: string | null;
9
+ epoch_id: Generated<Int8>;
10
+ transfer_id: Generated<Int8>;
11
+ }
12
+ export interface Burn {
13
+ burned: Int8;
14
+ executed_at: Timestamp | null;
15
+ id: Generated<Int8>;
16
+ marked_burned_at: Timestamp | null;
17
+ priced_at: Timestamp | null;
18
+ quote_amt: Int8 | null;
19
+ sol_tx: string;
20
+ usdc_spent: Int8 | null;
21
+ }
22
+ export interface DbMigration {
23
+ burn_id: Generated<Int8 | null>;
24
+ migrated: boolean | null;
25
+ transfer_id: Generated<Int8 | null>;
26
+ }
27
+ export interface Job {
28
+ burn_id: Generated<Int8 | null>;
29
+ completed_at: Timestamp | null;
30
+ id: Generated<Int8>;
31
+ inserted_at: Timestamp | null;
32
+ render_amt: Int8;
33
+ }
34
+ export interface JobId {
35
+ epoch_id: Generated<Int8>;
36
+ id: Int8;
37
+ }
38
+ export interface LiabMigration {
39
+ id: Generated<Int8>;
40
+ }
41
+ export interface Lock {
42
+ acquired_at: Timestamp | null;
43
+ cursor: string | null;
44
+ description: string | null;
45
+ id: Generated<Int8>;
46
+ released_at: Timestamp | null;
47
+ }
48
+ export interface NodeOperatorEpoch {
49
+ burn_tx: string | null;
50
+ burned: Generated<Int8>;
51
+ description: string | null;
52
+ end_time: Timestamp | null;
53
+ id: Generated<Int8>;
54
+ saved_at: Timestamp | null;
55
+ start_time: Timestamp | null;
56
+ total_rndr: Generated<Int8>;
57
+ }
58
+ export interface NodeOperatorRewardsTransfer {
59
+ end_time: Timestamp | null;
60
+ epoch_id: Generated<Int8>;
61
+ start_time: Timestamp | null;
62
+ transfer_id: Generated<Int8>;
63
+ }
64
+ export interface OpenComputeRewardsTransfer {
65
+ device_id: string | null;
66
+ epoch_id: Generated<Int8>;
67
+ transfer_id: Generated<Int8>;
68
+ }
69
+ export interface SolTx {
70
+ executed_at: Timestamp | null;
71
+ id: Generated<Int8>;
72
+ sig: string;
73
+ }
74
+ export interface SolTxTransfer {
75
+ amount: Int8 | null;
76
+ sol_tx_id: Generated<Int8>;
77
+ transfer_id: Generated<Int8>;
78
+ }
79
+ export interface SquadsTx {
80
+ id: Generated<Int8>;
81
+ sq_tx: string;
82
+ tx_status: TxStatus;
83
+ }
84
+ export interface Transfer {
85
+ amount_due: Int8;
86
+ amount_payed: Int8;
87
+ created_at: Generated<Timestamp>;
88
+ id: Generated<Int8>;
89
+ payed_at: Timestamp | null;
90
+ sol_key: string | null;
91
+ sol_tx: string | null;
92
+ sq_tx_id: Int8 | null;
93
+ transfer_type: TransferType;
94
+ }
95
+ export interface TxMigration {
96
+ sol_tx: string;
97
+ typ: Generated<TransferType | null>;
98
+ }
99
+ export interface UpgradeRewardsTransfer {
100
+ epoch_id: Generated<Int8>;
101
+ epoch_start_time: Timestamp | null;
102
+ points: Int8 | null;
103
+ transfer_id: Generated<Int8>;
104
+ }
105
+ export interface DB {
106
+ availability_rewards_transfer: AvailabilityRewardsTransfer;
107
+ burn: Burn;
108
+ db_migration: DbMigration;
109
+ job: Job;
110
+ job_id: JobId;
111
+ liab_migration: LiabMigration;
112
+ lock: Lock;
113
+ node_operator_epoch: NodeOperatorEpoch;
114
+ node_operator_rewards_transfer: NodeOperatorRewardsTransfer;
115
+ open_compute_rewards_transfer: OpenComputeRewardsTransfer;
116
+ sol_tx: SolTx;
117
+ sol_tx_transfer: SolTxTransfer;
118
+ squads_tx: SquadsTx;
119
+ transfer: Transfer;
120
+ tx_migration: TxMigration;
121
+ upgrade_rewards_transfer: UpgradeRewardsTransfer;
122
+ }
123
+ //# sourceMappingURL=dbTypes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dbTypes.d.ts","sourceRoot":"","sources":["../../../src/dbTypes.ts"],"names":[],"mappings":"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"}