@render-foundation/utils 0.0.136 → 0.0.137

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.
@@ -0,0 +1,412 @@
1
+ import { PublicKey } from '@solana/web3.js';
2
+ import { renderMint, buyAndBurnEscrow, passthruEscrow, v3SquadsVault, upgradeRewardsEscrow, upgradeRewardsCircuitBreaker, usdcMint, devsSquadsVault, bridgeEscrow } from './constants';
3
+ import { emissionDistributorKey } from '@render-foundation/emission-distributor-sdk';
4
+ export const solscan = (cookie) => {
5
+ const headers = {
6
+ accept: 'application/json, text/plain, */*',
7
+ 'accept-language': 'en-US,en;q=0.5',
8
+ cookie: cookie,
9
+ origin: 'https://solscan.io',
10
+ priority: 'u=1, i',
11
+ referer: 'https://solscan.io/',
12
+ 'sec-ch-ua': '"Chromium";v="128", "Not;A=Brand";v="24", "Brave";v="128"',
13
+ 'sec-ch-ua-mobile': '?0',
14
+ 'sec-ch-ua-platform': '"macOS"',
15
+ 'sec-fetch-dest': 'empty',
16
+ 'sec-fetch-mode': 'cors',
17
+ 'sec-fetch-site': 'same-site',
18
+ 'sec-gpc': '1',
19
+ 'sol-aut': 'qLtYhOMdWlJna=dQB9dls0fK=qTU9TcGxYIj2L-3',
20
+ 'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36',
21
+ };
22
+ const url = 'https://api-v2.solscan.io';
23
+ return {
24
+ async getBalanceChange(f) {
25
+ const r = {
26
+ page: '1',
27
+ page_size: '100',
28
+ };
29
+ if (f.mint) {
30
+ r['token'] = f.mint.toString();
31
+ }
32
+ if (f.flow) {
33
+ r['flow'] = f.flow;
34
+ }
35
+ if (f.tokenAcct) {
36
+ r['address'] = f.tokenAcct.toString();
37
+ }
38
+ const params = new URLSearchParams(r);
39
+ const ep = `${url}/v2/account/balance_change?${params}`;
40
+ console.log(`fetching ${ep}`);
41
+ const res = await fetch(ep, { headers });
42
+ const body = await res.json();
43
+ return body.data.map(({ trans_id, block_time, amount, token_decimals }) => ({
44
+ amount: amount,
45
+ tokenDecimals: token_decimals,
46
+ sig: trans_id,
47
+ blockTime: block_time,
48
+ }));
49
+ },
50
+ async getTransfers(f) {
51
+ const r = {
52
+ page: '1',
53
+ page_size: f.pageSize?.toString() ?? '100',
54
+ };
55
+ if (f.mint) {
56
+ r['token'] = f.mint.toString();
57
+ }
58
+ if (f.flow) {
59
+ r['flow'] = f.flow;
60
+ }
61
+ if (f.addr) {
62
+ r['address'] = f.addr.toString();
63
+ }
64
+ const params = new URLSearchParams(r);
65
+ const ep = `${url}/v2/account/transfer?${params}`;
66
+ const res = await fetch(ep, { headers });
67
+ if (res.status != 200) {
68
+ throw new Error(`failed ${await res.text()}`);
69
+ }
70
+ const body = await res.json();
71
+ return body.data.map(({ trans_id, block_time, amount, token_decimals, to_address, from_address }) => ({
72
+ amount: amount,
73
+ tokenDecimals: token_decimals,
74
+ fromAddress: new PublicKey(from_address),
75
+ toAddress: new PublicKey(to_address),
76
+ sig: trans_id,
77
+ blockTime: block_time,
78
+ }));
79
+ },
80
+ };
81
+ };
82
+ export class Backfiller {
83
+ _types = {};
84
+ conn;
85
+ _txs = [];
86
+ pg;
87
+ solscan = { pageSize: 100 };
88
+ constructor(conn, pg) {
89
+ this.conn = conn;
90
+ this.pg = pg;
91
+ }
92
+ emit() {
93
+ this._types['emit'] = {};
94
+ return this;
95
+ }
96
+ loans() {
97
+ this._types['loan'] = {};
98
+ return this;
99
+ }
100
+ buyBurnUSDCInflow(solscanCookie) {
101
+ this._types['buyBurnUSDCInflow'] = {};
102
+ this.solscan.cookie = solscanCookie;
103
+ return this;
104
+ }
105
+ manualMint(solscanCookie) {
106
+ this._types['manualMint'] = {};
107
+ this.solscan.cookie = solscanCookie;
108
+ return this;
109
+ }
110
+ vaultOutflows(p) {
111
+ this._types['vaultOutflows'] = {};
112
+ this.solscan.cookie = p.solscanCookie;
113
+ this.solscan.pageSize = p.pageSize;
114
+ return this;
115
+ }
116
+ txs(...sigs) {
117
+ this._txs.push(...sigs);
118
+ }
119
+ indexLoans = async () => {
120
+ const trs = [
121
+ {
122
+ transfer: {
123
+ toSolKey: '2P2gisXpbsYEUsTDQKdcDKSg1UZvx7qxfLTkvJGZdeJC',
124
+ fromSolKey: v3SquadsVault,
125
+ solTx: '3oC8BybX5YrkfPyvV8rAE1tnJr6egtZFHLghqHuLi3eaT4aWm87qZPJFrjFRn6nwVemd2ponsew85tBs6VVQzTJv',
126
+ executedAt: new Date('December 22, 2023 04:13:58 UTC'),
127
+ symbol: 'RENDER',
128
+ channel: 'loan',
129
+ amountPayed: BigInt(44999 * Math.pow(10, 8)),
130
+ },
131
+ },
132
+ {
133
+ transfer: {
134
+ toSolKey: '2P2gisXpbsYEUsTDQKdcDKSg1UZvx7qxfLTkvJGZdeJC',
135
+ fromSolKey: v3SquadsVault,
136
+ channel: 'loan',
137
+ solTx: '2f5sEBHcP8wpF79voUEUiP8pryDt7FvqrTXQrEpXzAxbzyFYPkavZGtJc5N8CXhfbJav8hQTr9YcENKseiouaWzc',
138
+ executedAt: new Date('December 22, 2023 02:39:53 UTC'),
139
+ symbol: 'RENDER',
140
+ amountPayed: BigInt(1 * Math.pow(10, 8)),
141
+ },
142
+ },
143
+ {
144
+ transfer: {
145
+ toSolKey: '5DGbogKUo8haEYC9Tt4FTHE5ue55bjLC4DpSgE1g6yT1',
146
+ fromSolKey: v3SquadsVault,
147
+ channel: 'loan',
148
+ solTx: '42n55BZcKVBCSZQoaneBQLn57v7zZGZorGe3uBLheGu4BQtpaTChdT1z3vHwgU4MHghJw3wJ72rFLkib761ewJCj',
149
+ executedAt: new Date('January 12, 2024 00:17:02 UTC'),
150
+ symbol: 'RENDER',
151
+ amountPayed: BigInt(1 * Math.pow(10, 8)),
152
+ },
153
+ },
154
+ {
155
+ transfer: {
156
+ toSolKey: '5DGbogKUo8haEYC9Tt4FTHE5ue55bjLC4DpSgE1g6yT1',
157
+ fromSolKey: v3SquadsVault,
158
+ channel: 'loan',
159
+ solTx: 'THJLvA1UTqH22hNP7Ecnfn4iY736VJAZ8scgSUjrDDaGpSQJmGYKJYXGtDu6TB96fKo6mJBtUBZvLb4ors17JUR',
160
+ executedAt: new Date('January 17, 2024 22:09:58 UTC'),
161
+ symbol: 'RENDER',
162
+ amountPayed: BigInt(49999 * Math.pow(10, 8)),
163
+ },
164
+ },
165
+ {
166
+ transfer: {
167
+ toSolKey: '5DGbogKUo8haEYC9Tt4FTHE5ue55bjLC4DpSgE1g6yT1',
168
+ fromSolKey: devsSquadsVault,
169
+ channel: 'loan',
170
+ solTx: '5BcxrMExq34jtMB5c3bH3A8TN4pCp9sxjC5HMcS7Mh8pig3r2eQhvRnJeE1RBTyQ4JDXyANWmDU9SKdYFyT2wDoq',
171
+ executedAt: new Date('February 28, 2024 22:43:21 UTC'),
172
+ symbol: 'RENDER',
173
+ amountPayed: BigInt(1 * Math.pow(10, 8)),
174
+ },
175
+ },
176
+ {
177
+ transfer: {
178
+ toSolKey: '5DGbogKUo8haEYC9Tt4FTHE5ue55bjLC4DpSgE1g6yT1',
179
+ fromSolKey: devsSquadsVault,
180
+ channel: 'loan',
181
+ solTx: '5E4E35CT4e3fhbMAwcKdfAvJL4uUHR8hHE8REmKnDCEsFZ6mxaE1YyeYK8Sbg5AJqBJxsZkcYSohY8T14YLC5pXs',
182
+ executedAt: new Date('February 29, 2024 01:17:51 UTC'),
183
+ symbol: 'RENDER',
184
+ amountPayed: BigInt(199999 * Math.pow(10, 8)),
185
+ },
186
+ }
187
+ ];
188
+ for (const t of trs) {
189
+ try {
190
+ await this.pg.createPayments(this.pg.db, [t]);
191
+ }
192
+ catch (e) {
193
+ console.log(`except ${e}`);
194
+ }
195
+ }
196
+ };
197
+ async findEmitTxs() {
198
+ const ad = emissionDistributorKey(new PublicKey(renderMint))[0];
199
+ let sigs = await this.conn.getSignaturesForAddress(new PublicKey(ad), undefined, 'confirmed');
200
+ let rev = [];
201
+ while (sigs.length == 1000) {
202
+ console.log(`sigs len ${sigs.length}`);
203
+ rev = sigs.concat(rev);
204
+ sigs = await this.conn.getSignaturesForAddress(new PublicKey(ad), { before: sigs[sigs.length - 1].signature }, 'confirmed');
205
+ console.log(`looping`);
206
+ }
207
+ rev = sigs.concat(rev);
208
+ console.log(`rev ${rev.length}`);
209
+ let proced = 0;
210
+ const found = {};
211
+ for (const s of rev) {
212
+ const p = await this.conn.getParsedTransaction(s.signature, {
213
+ maxSupportedTransactionVersion: 0,
214
+ commitment: 'confirmed',
215
+ });
216
+ if (p.meta.err) {
217
+ continue;
218
+ }
219
+ for (const l of p.meta.logMessages) {
220
+ if (l.includes('DistributeEmissionsV0')) {
221
+ found[s.signature] = {};
222
+ }
223
+ }
224
+ proced += 1;
225
+ if (proced % 50 == 0) {
226
+ console.log(`proced ${proced}`);
227
+ }
228
+ }
229
+ console.log(`emit txs: ${Object.keys(found)}`);
230
+ //console.log(`last ${sigs.slice(sigs.length - 5).map((s) => s.signature)}`)
231
+ return found;
232
+ }
233
+ async run() {
234
+ for (const t of Object.keys(this._types)) {
235
+ if (t == 'emit') {
236
+ const txs = await this.findEmitTxs();
237
+ await this.indexTxs(Object.keys(txs), 'emit');
238
+ }
239
+ else if (t == 'buyBurnUSDCInflow') {
240
+ const trs = await solscan(this.solscan.cookie).getTransfers({
241
+ mint: new PublicKey(usdcMint),
242
+ flow: 'in',
243
+ addr: new PublicKey(buyAndBurnEscrow),
244
+ });
245
+ for (const t of trs) {
246
+ console.log(`buyBurnUSDCInflows: ${JSON.stringify(t)}`);
247
+ const { stop } = await this.indexTransfers({ [buyAndBurnEscrow]: { mint: usdcMint, amt: t.amount } }, { blockTime: t.blockTime, sig: t.sig }, t.fromAddress.toString(), 'internal');
248
+ if (stop) {
249
+ break;
250
+ }
251
+ }
252
+ }
253
+ else if (t == 'manualMint') {
254
+ const trs = await solscan(this.solscan.cookie).getBalanceChange({
255
+ mint: new PublicKey(renderMint),
256
+ flow: 'in',
257
+ tokenAcct: new PublicKey(bridgeEscrow),
258
+ });
259
+ for (const t of trs) {
260
+ console.log(`manualMints: ${JSON.stringify(t)}`);
261
+ const { stop } = await this.indexTransfers({ [bridgeEscrow]: { mint: renderMint, amt: t.amount } }, { blockTime: t.blockTime, sig: t.sig }, renderMint, 'manual_mint');
262
+ if (stop) {
263
+ break;
264
+ }
265
+ }
266
+ }
267
+ else if (t == 'vaultOutflows') {
268
+ const trs = await solscan(this.solscan.cookie).getTransfers({
269
+ mint: new PublicKey(renderMint),
270
+ flow: 'out',
271
+ addr: new PublicKey(devsSquadsVault),
272
+ pageSize: this.solscan.pageSize
273
+ });
274
+ for (const t of trs) {
275
+ console.log(`vaultOutflow: ${JSON.stringify(t)}`);
276
+ const { stop } = await this.indexTransfers({ [t.toAddress.toString()]: { mint: renderMint, amt: t.amount } }, { blockTime: t.blockTime, sig: t.sig }, devsSquadsVault, 'internal');
277
+ if (stop) {
278
+ break;
279
+ }
280
+ }
281
+ }
282
+ else if (t == 'loan') {
283
+ await this.indexLoans();
284
+ }
285
+ }
286
+ }
287
+ async indexTransfers(onchain, tx, sender, channel, reindexTx = false) {
288
+ const ents = Object.entries(onchain).filter(([k, { mint, amt }]) => amt != 0);
289
+ if (reindexTx) {
290
+ let res = await this.pg.db.trx
291
+ .deleteFrom('sol_tx')
292
+ .where('sig', '=', tx.sig)
293
+ .executeTakeFirstOrThrow();
294
+ console.log(`deleted ${res.numDeletedRows} tx`);
295
+ }
296
+ console.log(`diffs: ${ents.map(([k, v]) => `k ${k} v -> ${JSON.stringify(v)}`)}`);
297
+ const insertedIds = [];
298
+ for (const [k, { amt, mint }] of ents) {
299
+ if (k == sender) {
300
+ continue;
301
+ }
302
+ const trx = await this.pg.startTransaction();
303
+ try {
304
+ const { inserted } = await this.pg.createPayments(trx, [
305
+ {
306
+ transfer: {
307
+ fromSolKey: sender,
308
+ toSolKey: k,
309
+ symbol: (() => {
310
+ if (mint == renderMint) {
311
+ return 'RENDER';
312
+ }
313
+ if (mint == usdcMint) {
314
+ return 'USDC';
315
+ }
316
+ throw new Error(`unknown mint ${mint}`);
317
+ })(),
318
+ channel: channel,
319
+ solTx: tx.sig,
320
+ executedAt: new Date(tx.blockTime * 1000),
321
+ amountPayed: BigInt(amt),
322
+ },
323
+ },
324
+ ]);
325
+ console.log(`inserted ${JSON.stringify(inserted)}`);
326
+ insertedIds.push(...inserted.map((t) => t.transferId).filter((i) => !!i));
327
+ trx.commit();
328
+ }
329
+ catch (e) {
330
+ trx.rollback();
331
+ if (`${e}`.includes('duplicate key value violates unique constraint')) {
332
+ console.log(`caught up indexing ${e}`);
333
+ return { stop: true };
334
+ }
335
+ throw e;
336
+ }
337
+ }
338
+ console.log(`tx ${tx.sig} -> insertedIds ${insertedIds.length}`);
339
+ return { stop: false };
340
+ }
341
+ async indexTxs(txs, channel, reindexTx = false, deleteFailed = false, mints = [renderMint, usdcMint],
342
+ // squadsV4
343
+ senders = [passthruEscrow, v3SquadsVault, upgradeRewardsEscrow, upgradeRewardsCircuitBreaker, renderMint], assertSender = '') {
344
+ let proced = 0;
345
+ console.log(`processing ${txs.length} txs`);
346
+ const insertedIds = [];
347
+ for (const solTx of txs) {
348
+ if (solTx == '') {
349
+ continue;
350
+ }
351
+ console.log(`solTx ${solTx}`);
352
+ const tx = await this.conn.getParsedTransaction(solTx, {
353
+ maxSupportedTransactionVersion: 0,
354
+ commitment: 'confirmed',
355
+ });
356
+ if (!tx || tx.meta.err) {
357
+ console.log(`shouldnt exist ${solTx} in db. deleting`);
358
+ let res = await this.pg.db.trx
359
+ .deleteFrom('sol_tx')
360
+ .where('sig', '=', solTx)
361
+ .executeTakeFirstOrThrow();
362
+ console.log(`deleted ${res.numDeletedRows} tx`);
363
+ continue;
364
+ }
365
+ const onchain = {};
366
+ for (const b of tx.meta.postTokenBalances) {
367
+ const mint = mints.find((m) => b.mint == m);
368
+ const amt = Number(b.uiTokenAmount.amount ?? 0);
369
+ if (mint) {
370
+ onchain[b.owner] = { mint, amt };
371
+ }
372
+ }
373
+ let sender;
374
+ for (const b of tx.meta.preTokenBalances) {
375
+ const mint = mints.find((m) => b.mint == m);
376
+ const amt = Number(b.uiTokenAmount.amount ?? 0);
377
+ if (mint) {
378
+ onchain[b.owner] = { mint, amt: onchain[b.owner].amt - amt };
379
+ if (onchain[b.owner].amt < 0) {
380
+ sender = senders.find((s) => s == b.owner.toString());
381
+ if (!sender) {
382
+ throw new Error(`sender ${b.owner} not in expected senders ${senders}`);
383
+ }
384
+ if (assertSender != '' && sender != assertSender) {
385
+ throw new Error(`assert sender ${b.owner} != ${assertSender}`);
386
+ }
387
+ }
388
+ }
389
+ }
390
+ if (channel == 'emit') {
391
+ sender = renderMint;
392
+ }
393
+ if (!sender) {
394
+ console.log(`no matching sender found`);
395
+ }
396
+ if (Object.keys(onchain).length == 0) {
397
+ console.log(`skipping ${solTx}. nothing to index`);
398
+ continue;
399
+ }
400
+ const { stop } = await this.indexTransfers(onchain, { blockTime: tx.blockTime, sig: solTx }, sender, channel);
401
+ if (stop) {
402
+ break;
403
+ }
404
+ proced += 1;
405
+ if (proced % 10 == 0) {
406
+ console.log(`proced ${proced}`);
407
+ }
408
+ }
409
+ console.log(`done. inserted ${insertedIds.length} transfers: ${insertedIds.join(',')}`);
410
+ }
411
+ }
412
+ //# sourceMappingURL=backfiller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backfiller.js","sourceRoot":"","sources":["../../../src/backfiller.ts"],"names":[],"mappings":"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"}
@@ -12,4 +12,5 @@ export * from './client/price';
12
12
  export * from './client/trade';
13
13
  export * from './client/onchain';
14
14
  export * from './constants';
15
+ export * from './backfiller';
15
16
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA;AACjC,OAAO,KAAK,EAAE,MAAM,gBAAgB,CAAA;AACpC,OAAO,KAAK,UAAU,MAAM,sBAAsB,CAAA;AAClD,cAAc,wBAAwB,CAAA;AACtC,OAAO,KAAK,EAAE,MAAM,gBAAgB,CAAA;AACpC,cAAc,kBAAkB,CAAA;AAChC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,UAAU,CAAA;AACxB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,kBAAkB,CAAA;AAChC,cAAc,aAAa,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA;AACjC,OAAO,KAAK,EAAE,MAAM,gBAAgB,CAAA;AACpC,OAAO,KAAK,UAAU,MAAM,sBAAsB,CAAA;AAClD,cAAc,wBAAwB,CAAA;AACtC,OAAO,KAAK,EAAE,MAAM,gBAAgB,CAAA;AACpC,cAAc,kBAAkB,CAAA;AAChC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,UAAU,CAAA;AACxB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,kBAAkB,CAAA;AAChC,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA"}