torch-liquidation-bot 2.0.5 → 2.0.7
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/dist/config.d.ts +8 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +20 -0
- package/dist/config.js.map +1 -0
- package/dist/index.d.ts +16 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +74 -0
- package/dist/index.js.map +1 -0
- package/dist/types.d.ts +9 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +6 -0
- package/dist/types.js.map +1 -0
- package/dist/utils.d.ts +6 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +15 -0
- package/dist/utils.js.map +1 -0
- package/package.json +6 -6
- package/readme.md +1 -1
package/dist/config.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* config.ts — loads environment variables into a typed ReadOnlyConfig.
|
|
3
|
+
*
|
|
4
|
+
* no wallet loaded, no keypair decoded, no signing possible.
|
|
5
|
+
*/
|
|
6
|
+
import type { ReadOnlyConfig } from './types';
|
|
7
|
+
export declare function loadReadOnlyConfig(): ReadOnlyConfig;
|
|
8
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAY,MAAM,SAAS,CAAA;AAIvD,wBAAgB,kBAAkB,IAAI,cAAc,CAUnD"}
|
package/dist/config.js
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* config.ts — loads environment variables into a typed ReadOnlyConfig.
|
|
4
|
+
*
|
|
5
|
+
* no wallet loaded, no keypair decoded, no signing possible.
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.loadReadOnlyConfig = loadReadOnlyConfig;
|
|
9
|
+
const LOG_LEVELS = ['debug', 'info', 'warn', 'error'];
|
|
10
|
+
function loadReadOnlyConfig() {
|
|
11
|
+
const rpcUrl = process.env.RPC_URL;
|
|
12
|
+
if (!rpcUrl)
|
|
13
|
+
throw new Error('RPC_URL env var is required');
|
|
14
|
+
const logLevel = (process.env.LOG_LEVEL ?? 'info');
|
|
15
|
+
if (!LOG_LEVELS.includes(logLevel)) {
|
|
16
|
+
throw new Error(`LOG_LEVEL must be one of: ${LOG_LEVELS.join(', ')}`);
|
|
17
|
+
}
|
|
18
|
+
return { rpcUrl, logLevel };
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;AAMH,gDAUC;AAZD,MAAM,UAAU,GAAe,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;AAEjE,SAAgB,kBAAkB;IAChC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAA;IAClC,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAA;IAE3D,MAAM,QAAQ,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,MAAM,CAAa,CAAA;IAC9D,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,6BAA6B,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACvE,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAA;AAC7B,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* torch-lending-monitor — read-only lending market scanner.
|
|
4
|
+
*
|
|
5
|
+
* displays lending parameters for tokens on Torch Market.
|
|
6
|
+
* no wallet required. no signing. no state changes.
|
|
7
|
+
*
|
|
8
|
+
* usage:
|
|
9
|
+
* # show all migrated tokens with lending
|
|
10
|
+
* RPC_URL=<rpc> npx tsx src/index.ts
|
|
11
|
+
*
|
|
12
|
+
* # show lending info for one token
|
|
13
|
+
* MINT=<mint> RPC_URL=<rpc> npx tsx src/index.ts
|
|
14
|
+
*/
|
|
15
|
+
export {};
|
|
16
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;GAYG"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
/**
|
|
4
|
+
* torch-lending-monitor — read-only lending market scanner.
|
|
5
|
+
*
|
|
6
|
+
* displays lending parameters for tokens on Torch Market.
|
|
7
|
+
* no wallet required. no signing. no state changes.
|
|
8
|
+
*
|
|
9
|
+
* usage:
|
|
10
|
+
* # show all migrated tokens with lending
|
|
11
|
+
* RPC_URL=<rpc> npx tsx src/index.ts
|
|
12
|
+
*
|
|
13
|
+
* # show lending info for one token
|
|
14
|
+
* MINT=<mint> RPC_URL=<rpc> npx tsx src/index.ts
|
|
15
|
+
*/
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
const web3_js_1 = require("@solana/web3.js");
|
|
18
|
+
const torchsdk_1 = require("torchsdk");
|
|
19
|
+
const config_1 = require("./config");
|
|
20
|
+
const utils_1 = require("./utils");
|
|
21
|
+
// ---------------------------------------------------------------------------
|
|
22
|
+
// read-only info display
|
|
23
|
+
// ---------------------------------------------------------------------------
|
|
24
|
+
async function showLendingInfo(connection, mint) {
|
|
25
|
+
const token = await (0, torchsdk_1.getToken)(connection, mint);
|
|
26
|
+
const lending = await (0, torchsdk_1.getLendingInfo)(connection, mint);
|
|
27
|
+
console.log(`\n=== lending info: ${token.name} (${token.symbol}) ===`);
|
|
28
|
+
console.log(`status: ${token.status}`);
|
|
29
|
+
console.log(`token price: ${(0, utils_1.sol)(token.price_sol)} SOL`);
|
|
30
|
+
console.log(`interest rate: ${(0, utils_1.bpsToPercent)(lending.interest_rate_bps)}`);
|
|
31
|
+
console.log(`max LTV: ${(0, utils_1.bpsToPercent)(lending.max_ltv_bps)}`);
|
|
32
|
+
console.log(`liquidation threshold: ${(0, utils_1.bpsToPercent)(lending.liquidation_threshold_bps)}`);
|
|
33
|
+
console.log(`liquidation bonus: ${(0, utils_1.bpsToPercent)(lending.liquidation_bonus_bps)}`);
|
|
34
|
+
console.log(`treasury SOL avail: ${(0, utils_1.sol)(lending.treasury_sol_available)} SOL`);
|
|
35
|
+
console.log(`total SOL lent: ${lending.total_sol_lent ? (0, utils_1.sol)(lending.total_sol_lent) : (0, utils_1.sol)(0)} SOL`);
|
|
36
|
+
console.log(`active loans: ${lending.active_loans}`);
|
|
37
|
+
}
|
|
38
|
+
async function showAllLending(connection) {
|
|
39
|
+
console.log('=== torch lending monitor ===\n');
|
|
40
|
+
console.log('no MINT specified — showing all migrated tokens with lending\n');
|
|
41
|
+
const { tokens } = await (0, torchsdk_1.getTokens)(connection, {
|
|
42
|
+
status: 'migrated',
|
|
43
|
+
sort: 'volume',
|
|
44
|
+
limit: 10,
|
|
45
|
+
});
|
|
46
|
+
for (const t of tokens) {
|
|
47
|
+
try {
|
|
48
|
+
const lending = await (0, torchsdk_1.getLendingInfo)(connection, t.mint);
|
|
49
|
+
console.log(`${t.symbol.padEnd(10)} | ` +
|
|
50
|
+
`rate: ${(0, utils_1.bpsToPercent)(lending.interest_rate_bps).padEnd(7)} | ` +
|
|
51
|
+
`loans: ${String(lending.active_loans).padEnd(4)} | ` +
|
|
52
|
+
`avail: ${(0, utils_1.sol)(lending.treasury_sol_available)} SOL`);
|
|
53
|
+
}
|
|
54
|
+
catch {
|
|
55
|
+
// token may not have lending enabled yet
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
// ---------------------------------------------------------------------------
|
|
60
|
+
// main — read-only only
|
|
61
|
+
// ---------------------------------------------------------------------------
|
|
62
|
+
async function main() {
|
|
63
|
+
const config = (0, config_1.loadReadOnlyConfig)();
|
|
64
|
+
const connection = new web3_js_1.Connection(config.rpcUrl, 'confirmed');
|
|
65
|
+
const MINT = process.env.MINT;
|
|
66
|
+
if (MINT) {
|
|
67
|
+
await showLendingInfo(connection, MINT);
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
await showAllLending(connection);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
main();
|
|
74
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAA;AAE1D,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,QAAQ,CAAA;CACnB"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";AAAA;;GAEG"}
|
package/dist/utils.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,wBAAgB,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE5C;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEhD"}
|
package/dist/utils.js
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* utils.ts — shared helpers.
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.sol = sol;
|
|
7
|
+
exports.bpsToPercent = bpsToPercent;
|
|
8
|
+
const torchsdk_1 = require("torchsdk");
|
|
9
|
+
function sol(lamports) {
|
|
10
|
+
return (lamports / torchsdk_1.LAMPORTS_PER_SOL).toFixed(4);
|
|
11
|
+
}
|
|
12
|
+
function bpsToPercent(bps) {
|
|
13
|
+
return (bps / 100).toFixed(2) + '%';
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAIH,kBAEC;AAED,oCAEC;AARD,uCAA2C;AAE3C,SAAgB,GAAG,CAAC,QAAgB;IAClC,OAAO,CAAC,QAAQ,GAAG,2BAAgB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;AACjD,CAAC;AAED,SAAgB,YAAY,CAAC,GAAW;IACtC,OAAO,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,CAAA;AACrC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "torch-liquidation-bot",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.7",
|
|
4
4
|
"description": "read-only lending market scanner for Torch Market on Solana",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -17,13 +17,13 @@
|
|
|
17
17
|
"format": "prettier --write src/ tests/"
|
|
18
18
|
},
|
|
19
19
|
"dependencies": {
|
|
20
|
-
"@solana/web3.js": "
|
|
21
|
-
"torchsdk": "
|
|
20
|
+
"@solana/web3.js": "1.98.4",
|
|
21
|
+
"torchsdk": "1.0.7"
|
|
22
22
|
},
|
|
23
23
|
"devDependencies": {
|
|
24
|
-
"@types/node": "
|
|
25
|
-
"prettier": "
|
|
26
|
-
"typescript": "
|
|
24
|
+
"@types/node": "20.19.33",
|
|
25
|
+
"prettier": "3.8.1",
|
|
26
|
+
"typescript": "5.9.3"
|
|
27
27
|
},
|
|
28
28
|
"peerDependencies": {
|
|
29
29
|
"@solana/web3.js": "^1.98.0"
|
package/readme.md
CHANGED