quicknode-solana-kit 1.0.2 → 1.0.4
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/README.md +1236 -250
- package/dist/addons.d.ts.map +1 -1
- package/dist/addons.js +190 -0
- package/dist/addons.js.map +1 -1
- package/dist/goldrush/index.d.ts +10 -0
- package/dist/goldrush/index.d.ts.map +1 -0
- package/dist/goldrush/index.js +37 -0
- package/dist/goldrush/index.js.map +1 -0
- package/dist/index.d.ts +33 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +92 -2
- package/dist/index.js.map +1 -1
- package/dist/iris/index.d.ts +3 -0
- package/dist/iris/index.d.ts.map +1 -0
- package/dist/iris/index.js +29 -0
- package/dist/iris/index.js.map +1 -0
- package/dist/mev/index.d.ts +4 -0
- package/dist/mev/index.d.ts.map +1 -0
- package/dist/mev/index.js +52 -0
- package/dist/mev/index.js.map +1 -0
- package/dist/openocean/index.d.ts +13 -0
- package/dist/openocean/index.d.ts.map +1 -0
- package/dist/openocean/index.js +63 -0
- package/dist/openocean/index.js.map +1 -0
- package/dist/pumpfun/index.d.ts +7 -0
- package/dist/pumpfun/index.d.ts.map +1 -0
- package/dist/pumpfun/index.js +54 -0
- package/dist/pumpfun/index.js.map +1 -0
- package/dist/scorechain/index.d.ts +4 -0
- package/dist/scorechain/index.d.ts.map +1 -0
- package/dist/scorechain/index.js +26 -0
- package/dist/scorechain/index.js.map +1 -0
- package/dist/stablecoin/index.d.ts +3 -0
- package/dist/stablecoin/index.d.ts.map +1 -0
- package/dist/stablecoin/index.js +16 -0
- package/dist/stablecoin/index.js.map +1 -0
- package/dist/titan/index.d.ts +5 -0
- package/dist/titan/index.d.ts.map +1 -0
- package/dist/titan/index.js +119 -0
- package/dist/titan/index.js.map +1 -0
- package/dist/types/index.d.ts +234 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/utils/addon-guard.d.ts.map +1 -1
- package/dist/utils/addon-guard.js +47 -0
- package/dist/utils/addon-guard.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type Keypair } from '@solana/web3.js';
|
|
2
|
+
import type { QNConfig, OpenOceanQuote, OpenOceanQuoteOptions, OpenOceanSwapOptions, OpenOceanSwapResult } from '../types';
|
|
3
|
+
export declare function getOpenOceanQuote(config: QNConfig, options: OpenOceanQuoteOptions): Promise<OpenOceanQuote>;
|
|
4
|
+
export declare function openOceanSwap(config: QNConfig, options: OpenOceanSwapOptions & {
|
|
5
|
+
signer: Keypair;
|
|
6
|
+
}): Promise<OpenOceanSwapResult>;
|
|
7
|
+
export declare const OO_TOKENS: {
|
|
8
|
+
readonly SOL: "So11111111111111111111111111111111111111112";
|
|
9
|
+
readonly USDC: "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v";
|
|
10
|
+
readonly USDT: "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB";
|
|
11
|
+
readonly BONK: "DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263";
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/openocean/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,KAAK,OAAO,EAAE,MAAM,iBAAiB,CAAC;AACrE,OAAO,KAAK,EACV,QAAQ,EACR,cAAc,EACd,qBAAqB,EACrB,oBAAoB,EACpB,mBAAmB,EACpB,MAAM,UAAU,CAAC;AAalB,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,QAAQ,EAChB,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,cAAc,CAAC,CAUzB;AAGD,wBAAsB,aAAa,CACjC,MAAM,EAAE,QAAQ,EAChB,OAAO,EAAE,oBAAoB,GAAG;IAAE,MAAM,EAAE,OAAO,CAAA;CAAE,GAClD,OAAO,CAAC,mBAAmB,CAAC,CAuC9B;AAGD,eAAO,MAAM,SAAS;;;;;CAKZ,CAAC"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OO_TOKENS = void 0;
|
|
4
|
+
exports.getOpenOceanQuote = getOpenOceanQuote;
|
|
5
|
+
exports.openOceanSwap = openOceanSwap;
|
|
6
|
+
const web3_js_1 = require("@solana/web3.js");
|
|
7
|
+
const addon_guard_1 = require("../utils/addon-guard");
|
|
8
|
+
const helpers_1 = require("../utils/helpers");
|
|
9
|
+
const http_1 = require("../utils/http");
|
|
10
|
+
// OpenOcean V4 REST API is mounted at /openocean/v4/solana/ on the QuickNode endpoint
|
|
11
|
+
// Docs: https://docs.openocean.finance/dev/openocean-api-3.0
|
|
12
|
+
function base(config) {
|
|
13
|
+
return config.endpointUrl.replace(/\/$/, '') + '/openocean/v4/solana';
|
|
14
|
+
}
|
|
15
|
+
// Get a price quote without executing
|
|
16
|
+
async function getOpenOceanQuote(config, options) {
|
|
17
|
+
(0, addon_guard_1.requireAddOn)(config, 'openocean');
|
|
18
|
+
const qs = new URLSearchParams({
|
|
19
|
+
inTokenAddress: options.inTokenAddress,
|
|
20
|
+
outTokenAddress: options.outTokenAddress,
|
|
21
|
+
amount: options.amount,
|
|
22
|
+
slippage: String(options.slippage ?? 1),
|
|
23
|
+
});
|
|
24
|
+
const res = await (0, http_1.httpGet)(`${base(config)}/quote?${qs}`, config.timeout);
|
|
25
|
+
return res.data;
|
|
26
|
+
}
|
|
27
|
+
// Execute a swap via OpenOcean
|
|
28
|
+
async function openOceanSwap(config, options) {
|
|
29
|
+
(0, addon_guard_1.requireAddOn)(config, 'openocean');
|
|
30
|
+
const startTime = Date.now();
|
|
31
|
+
const conn = (0, helpers_1.createConnection)(config);
|
|
32
|
+
const qs = new URLSearchParams({
|
|
33
|
+
inTokenAddress: options.inTokenAddress,
|
|
34
|
+
outTokenAddress: options.outTokenAddress,
|
|
35
|
+
amount: options.amount,
|
|
36
|
+
slippage: String(options.slippage ?? 1),
|
|
37
|
+
account: options.userAddress,
|
|
38
|
+
});
|
|
39
|
+
const res = await (0, http_1.httpGet)(`${base(config)}/swap_quote?${qs}`, config.timeout);
|
|
40
|
+
const txBuf = Buffer.from(res.data.data, 'base64');
|
|
41
|
+
const tx = web3_js_1.VersionedTransaction.deserialize(txBuf);
|
|
42
|
+
tx.sign([options.signer]);
|
|
43
|
+
const signature = await conn.sendRawTransaction(tx.serialize(), {
|
|
44
|
+
skipPreflight: false,
|
|
45
|
+
maxRetries: 3,
|
|
46
|
+
});
|
|
47
|
+
const { blockhash, lastValidBlockHeight } = await conn.getLatestBlockhash('confirmed');
|
|
48
|
+
await conn.confirmTransaction({ signature, blockhash, lastValidBlockHeight }, config.commitment ?? 'confirmed');
|
|
49
|
+
return {
|
|
50
|
+
signature,
|
|
51
|
+
inAmount: options.amount,
|
|
52
|
+
outAmount: '0', // populated from quote — caller can use getOpenOceanQuote first
|
|
53
|
+
confirmationMs: Date.now() - startTime,
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
// SOL and popular token addresses for OpenOcean on Solana
|
|
57
|
+
exports.OO_TOKENS = {
|
|
58
|
+
SOL: 'So11111111111111111111111111111111111111112',
|
|
59
|
+
USDC: 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v',
|
|
60
|
+
USDT: 'Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB',
|
|
61
|
+
BONK: 'DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263',
|
|
62
|
+
};
|
|
63
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/openocean/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { QNConfig, PumpFunToken, PumpFunTokenHolder, PumpFunTrade, GetPumpFunTokensOptions, GetPumpFunTokensByCreatorOptions, GetPumpFunTradesOptions } from '../types';
|
|
2
|
+
export declare function getPumpFunTokens(config: QNConfig, options?: GetPumpFunTokensOptions): Promise<PumpFunToken[]>;
|
|
3
|
+
export declare function getPumpFunToken(config: QNConfig, mint: string): Promise<PumpFunToken>;
|
|
4
|
+
export declare function getPumpFunTokensByCreator(config: QNConfig, options: GetPumpFunTokensByCreatorOptions): Promise<PumpFunToken[]>;
|
|
5
|
+
export declare function getPumpFunTokenHolders(config: QNConfig, mint: string): Promise<PumpFunTokenHolder[]>;
|
|
6
|
+
export declare function getPumpFunTokenTrades(config: QNConfig, mint: string, options?: GetPumpFunTradesOptions): Promise<PumpFunTrade[]>;
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/pumpfun/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,QAAQ,EACR,YAAY,EACZ,kBAAkB,EAClB,YAAY,EACZ,uBAAuB,EACvB,gCAAgC,EAChC,uBAAuB,EACxB,MAAM,UAAU,CAAC;AASlB,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,QAAQ,EAChB,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,YAAY,EAAE,CAAC,CAQzB;AAGD,wBAAsB,eAAe,CACnC,MAAM,EAAE,QAAQ,EAChB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,YAAY,CAAC,CAGvB;AAGD,wBAAsB,yBAAyB,CAC7C,MAAM,EAAE,QAAQ,EAChB,OAAO,EAAE,gCAAgC,GACxC,OAAO,CAAC,YAAY,EAAE,CAAC,CAQzB;AAGD,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,QAAQ,EAChB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAG/B;AAGD,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,QAAQ,EAChB,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,YAAY,EAAE,CAAC,CAQzB"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getPumpFunTokens = getPumpFunTokens;
|
|
4
|
+
exports.getPumpFunToken = getPumpFunToken;
|
|
5
|
+
exports.getPumpFunTokensByCreator = getPumpFunTokensByCreator;
|
|
6
|
+
exports.getPumpFunTokenHolders = getPumpFunTokenHolders;
|
|
7
|
+
exports.getPumpFunTokenTrades = getPumpFunTokenTrades;
|
|
8
|
+
const addon_guard_1 = require("../utils/addon-guard");
|
|
9
|
+
const http_1 = require("../utils/http");
|
|
10
|
+
function base(config) {
|
|
11
|
+
return config.endpointUrl.replace(/\/$/, '') + '/pump-fun';
|
|
12
|
+
}
|
|
13
|
+
// Docs: QuickNode Pump Fun API — get latest tokens by launch time
|
|
14
|
+
async function getPumpFunTokens(config, options = {}) {
|
|
15
|
+
(0, addon_guard_1.requireAddOn)(config, 'pumpfun');
|
|
16
|
+
const qs = new URLSearchParams({
|
|
17
|
+
limit: String(options.limit ?? 20),
|
|
18
|
+
offset: String(options.offset ?? 0),
|
|
19
|
+
});
|
|
20
|
+
if (options.includeNsfw !== undefined)
|
|
21
|
+
qs.set('include_nsfw', String(options.includeNsfw));
|
|
22
|
+
return (0, http_1.httpGet)(`${base(config)}/coins?${qs}`, config.timeout);
|
|
23
|
+
}
|
|
24
|
+
// Get a single token by its mint address
|
|
25
|
+
async function getPumpFunToken(config, mint) {
|
|
26
|
+
(0, addon_guard_1.requireAddOn)(config, 'pumpfun');
|
|
27
|
+
return (0, http_1.httpGet)(`${base(config)}/coins/${mint}`, config.timeout);
|
|
28
|
+
}
|
|
29
|
+
// Get all tokens created by a specific wallet
|
|
30
|
+
async function getPumpFunTokensByCreator(config, options) {
|
|
31
|
+
(0, addon_guard_1.requireAddOn)(config, 'pumpfun');
|
|
32
|
+
const qs = new URLSearchParams({
|
|
33
|
+
creator: options.creator,
|
|
34
|
+
limit: String(options.limit ?? 20),
|
|
35
|
+
offset: String(options.offset ?? 0),
|
|
36
|
+
});
|
|
37
|
+
return (0, http_1.httpGet)(`${base(config)}/coins?${qs}`, config.timeout);
|
|
38
|
+
}
|
|
39
|
+
// Get token holder distribution
|
|
40
|
+
async function getPumpFunTokenHolders(config, mint) {
|
|
41
|
+
(0, addon_guard_1.requireAddOn)(config, 'pumpfun');
|
|
42
|
+
return (0, http_1.httpGet)(`${base(config)}/coins/${mint}/holders`, config.timeout);
|
|
43
|
+
}
|
|
44
|
+
// Get recent trades for a token
|
|
45
|
+
async function getPumpFunTokenTrades(config, mint, options = {}) {
|
|
46
|
+
(0, addon_guard_1.requireAddOn)(config, 'pumpfun');
|
|
47
|
+
const qs = new URLSearchParams({
|
|
48
|
+
mint,
|
|
49
|
+
limit: String(options.limit ?? 20),
|
|
50
|
+
offset: String(options.offset ?? 0),
|
|
51
|
+
});
|
|
52
|
+
return (0, http_1.httpGet)(`${base(config)}/trades/all?${qs}`, config.timeout);
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/pumpfun/index.ts"],"names":[],"mappings":";;AAiBA,4CAWC;AAGD,0CAMC;AAGD,8DAWC;AAGD,wDAMC;AAGD,sDAYC;AAlED,sDAAoD;AACpD,wCAAwC;AAExC,SAAS,IAAI,CAAC,MAAgB;IAC5B,OAAO,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,WAAW,CAAC;AAC7D,CAAC;AAED,kEAAkE;AAC3D,KAAK,UAAU,gBAAgB,CACpC,MAAgB,EAChB,UAAmC,EAAE;IAErC,IAAA,0BAAY,EAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAChC,MAAM,EAAE,GAAG,IAAI,eAAe,CAAC;QAC7B,KAAK,EAAG,MAAM,CAAC,OAAO,CAAC,KAAK,IAAK,EAAE,CAAC;QACpC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC;KACpC,CAAC,CAAC;IACH,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS;QAAE,EAAE,CAAC,GAAG,CAAC,cAAc,EAAE,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;IAC3F,OAAO,IAAA,cAAO,EAAiB,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;AAChF,CAAC;AAED,yCAAyC;AAClC,KAAK,UAAU,eAAe,CACnC,MAAgB,EAChB,IAAY;IAEZ,IAAA,0BAAY,EAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAChC,OAAO,IAAA,cAAO,EAAe,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;AAChF,CAAC;AAED,8CAA8C;AACvC,KAAK,UAAU,yBAAyB,CAC7C,MAAgB,EAChB,OAAyC;IAEzC,IAAA,0BAAY,EAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAChC,MAAM,EAAE,GAAG,IAAI,eAAe,CAAC;QAC7B,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,KAAK,EAAI,MAAM,CAAC,OAAO,CAAC,KAAK,IAAK,EAAE,CAAC;QACrC,MAAM,EAAG,MAAM,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC;KACrC,CAAC,CAAC;IACH,OAAO,IAAA,cAAO,EAAiB,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;AAChF,CAAC;AAED,gCAAgC;AACzB,KAAK,UAAU,sBAAsB,CAC1C,MAAgB,EAChB,IAAY;IAEZ,IAAA,0BAAY,EAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAChC,OAAO,IAAA,cAAO,EAAuB,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;AAChG,CAAC;AAED,gCAAgC;AACzB,KAAK,UAAU,qBAAqB,CACzC,MAAgB,EAChB,IAAY,EACZ,UAAmC,EAAE;IAErC,IAAA,0BAAY,EAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAChC,MAAM,EAAE,GAAG,IAAI,eAAe,CAAC;QAC7B,IAAI;QACJ,KAAK,EAAG,MAAM,CAAC,OAAO,CAAC,KAAK,IAAK,EAAE,CAAC;QACpC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC;KACpC,CAAC,CAAC;IACH,OAAO,IAAA,cAAO,EAAiB,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;AACrF,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { QNConfig, AssessWalletRiskOptions, WalletRiskAssessment } from '../types';
|
|
2
|
+
export declare function assessWalletRisk(config: QNConfig, options: AssessWalletRiskOptions): Promise<WalletRiskAssessment>;
|
|
3
|
+
export declare function isWalletSafe(config: QNConfig, address: string): Promise<boolean>;
|
|
4
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/scorechain/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,QAAQ,EACR,uBAAuB,EACvB,oBAAoB,EACrB,MAAM,UAAU,CAAC;AAclB,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,QAAQ,EAChB,OAAO,EAAE,uBAAuB,GAC/B,OAAO,CAAC,oBAAoB,CAAC,CAK/B;AAGD,wBAAsB,YAAY,CAChC,MAAM,EAAE,QAAQ,EAChB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,OAAO,CAAC,CAGlB"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.assessWalletRisk = assessWalletRisk;
|
|
4
|
+
exports.isWalletSafe = isWalletSafe;
|
|
5
|
+
const addon_guard_1 = require("../utils/addon-guard");
|
|
6
|
+
const http_1 = require("../utils/http");
|
|
7
|
+
// Scorechain Risk Assessment API
|
|
8
|
+
// Docs: https://docs.scorechain.com
|
|
9
|
+
// AML/CFT compliance, wallet risk scoring, and transaction monitoring.
|
|
10
|
+
// Mounted at /scorechain/v1/ on the QuickNode endpoint.
|
|
11
|
+
function base(config) {
|
|
12
|
+
return config.endpointUrl.replace(/\/$/, '') + '/scorechain/v1';
|
|
13
|
+
}
|
|
14
|
+
// Get AML/CFT risk score for any Solana (or other) wallet address
|
|
15
|
+
async function assessWalletRisk(config, options) {
|
|
16
|
+
(0, addon_guard_1.requireAddOn)(config, 'scorechain');
|
|
17
|
+
const network = options.network ?? 'solana';
|
|
18
|
+
const qs = new URLSearchParams({ address: options.address, network });
|
|
19
|
+
return (0, http_1.httpGet)(`${base(config)}/risk?${qs}`, config.timeout);
|
|
20
|
+
}
|
|
21
|
+
// Convenience: returns true if the wallet is considered safe to interact with
|
|
22
|
+
async function isWalletSafe(config, address) {
|
|
23
|
+
const assessment = await assessWalletRisk(config, { address });
|
|
24
|
+
return assessment.amlStatus === 'clean' && assessment.riskLevel === 'low';
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/scorechain/index.ts"],"names":[],"mappings":";;AAkBA,4CAQC;AAGD,oCAMC;AA9BD,sDAAoD;AACpD,wCAAwC;AAExC,iCAAiC;AACjC,oCAAoC;AACpC,uEAAuE;AACvE,wDAAwD;AAExD,SAAS,IAAI,CAAC,MAAgB;IAC5B,OAAO,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,gBAAgB,CAAC;AAClE,CAAC;AAED,kEAAkE;AAC3D,KAAK,UAAU,gBAAgB,CACpC,MAAgB,EAChB,OAAgC;IAEhC,IAAA,0BAAY,EAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACnC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,QAAQ,CAAC;IAC5C,MAAM,EAAE,GAAG,IAAI,eAAe,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;IACtE,OAAO,IAAA,cAAO,EAAuB,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;AACrF,CAAC;AAED,8EAA8E;AACvE,KAAK,UAAU,YAAY,CAChC,MAAgB,EAChB,OAAe;IAEf,MAAM,UAAU,GAAG,MAAM,gBAAgB,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;IAC/D,OAAO,UAAU,CAAC,SAAS,KAAK,OAAO,IAAI,UAAU,CAAC,SAAS,KAAK,KAAK,CAAC;AAC5E,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/stablecoin/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,QAAQ,EACR,2BAA2B,EAC3B,uBAAuB,EACxB,MAAM,UAAU,CAAC;AAOlB,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,QAAQ,EAChB,OAAO,EAAE,2BAA2B,GACnC,OAAO,CAAC,uBAAuB,CAAC,CAUlC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getStablecoinBalance = getStablecoinBalance;
|
|
4
|
+
const addon_guard_1 = require("../utils/addon-guard");
|
|
5
|
+
const http_1 = require("../utils/http");
|
|
6
|
+
// Docs: QuickNode Multi-Chain Stablecoin Balance API
|
|
7
|
+
// Method: qn_getWalletStablecoinBalances
|
|
8
|
+
// Queries USDT, USDC, DAI, and more across Solana + 10 other chains
|
|
9
|
+
async function getStablecoinBalance(config, options) {
|
|
10
|
+
(0, addon_guard_1.requireAddOn)(config, 'stablecoinBalance');
|
|
11
|
+
const params = { wallet: options.walletAddress };
|
|
12
|
+
if (options.chains?.length)
|
|
13
|
+
params.chains = options.chains;
|
|
14
|
+
return (0, http_1.rpcPost)(config.endpointUrl, 'qn_getWalletStablecoinBalances', params, config.timeout);
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/stablecoin/index.ts"],"names":[],"mappings":";;AAWA,oDAaC;AAnBD,sDAAoD;AACpD,wCAAwC;AAExC,qDAAqD;AACrD,yCAAyC;AACzC,oEAAoE;AAC7D,KAAK,UAAU,oBAAoB,CACxC,MAAgB,EAChB,OAAoC;IAEpC,IAAA,0BAAY,EAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IAC1C,MAAM,MAAM,GAA4B,EAAE,MAAM,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC;IAC1E,IAAI,OAAO,CAAC,MAAM,EAAE,MAAM;QAAE,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC3D,OAAO,IAAA,cAAO,EACZ,MAAM,CAAC,WAAW,EAClB,gCAAgC,EAChC,MAAM,EACN,MAAM,CAAC,OAAO,CACf,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { QNConfig, TitanQuoteOptions, TitanSwapQuote, TitanSwapOptions, TitanSwapResult } from '../types';
|
|
2
|
+
export declare function getTitanSwapQuote(config: QNConfig, options: TitanQuoteOptions): Promise<TitanSwapQuote>;
|
|
3
|
+
export declare function titanSwap(config: QNConfig, options: TitanSwapOptions): Promise<TitanSwapResult>;
|
|
4
|
+
export declare function subscribeTitanQuotes(config: QNConfig, options: TitanQuoteOptions, onQuote: (quote: TitanSwapQuote) => void, onError?: (err: Error) => void): () => void;
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/titan/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,QAAQ,EACR,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,eAAe,EAChB,MAAM,UAAU,CAAC;AAelB,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,QAAQ,EAChB,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,cAAc,CAAC,CASzB;AAGD,wBAAsB,SAAS,CAC7B,MAAM,EAAE,QAAQ,EAChB,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,eAAe,CAAC,CAwC1B;AAGD,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,QAAQ,EAChB,OAAO,EAAE,iBAAiB,EAC1B,OAAO,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,EACxC,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,GAC7B,MAAM,IAAI,CAgCZ"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.getTitanSwapQuote = getTitanSwapQuote;
|
|
37
|
+
exports.titanSwap = titanSwap;
|
|
38
|
+
exports.subscribeTitanQuotes = subscribeTitanQuotes;
|
|
39
|
+
const addon_guard_1 = require("../utils/addon-guard");
|
|
40
|
+
const helpers_1 = require("../utils/helpers");
|
|
41
|
+
const http_1 = require("../utils/http");
|
|
42
|
+
// Titan DeFi Swap Meta-Aggregation API (by Titan)
|
|
43
|
+
// Docs: https://docs.titanswap.io
|
|
44
|
+
// REST endpoint for point-in-time quotes; WebSocket available for streaming.
|
|
45
|
+
// Mounted at /titan/v1/ on the QuickNode endpoint.
|
|
46
|
+
function base(config) {
|
|
47
|
+
return config.endpointUrl.replace(/\/$/, '') + '/titan/v1';
|
|
48
|
+
}
|
|
49
|
+
// Get a single best-price quote aggregated across all DEXes
|
|
50
|
+
async function getTitanSwapQuote(config, options) {
|
|
51
|
+
(0, addon_guard_1.requireAddOn)(config, 'titan');
|
|
52
|
+
const qs = new URLSearchParams({
|
|
53
|
+
inputMint: options.inputMint,
|
|
54
|
+
outputMint: options.outputMint,
|
|
55
|
+
amount: options.amount,
|
|
56
|
+
slippageBps: String(options.slippageBps ?? 50),
|
|
57
|
+
});
|
|
58
|
+
return (0, http_1.httpGet)(`${base(config)}/quote?${qs}`, config.timeout);
|
|
59
|
+
}
|
|
60
|
+
// Execute a swap via Titan's meta-aggregation
|
|
61
|
+
async function titanSwap(config, options) {
|
|
62
|
+
(0, addon_guard_1.requireAddOn)(config, 'titan');
|
|
63
|
+
const startTime = Date.now();
|
|
64
|
+
const conn = (0, helpers_1.createConnection)(config);
|
|
65
|
+
// Get quote first
|
|
66
|
+
const quote = await getTitanSwapQuote(config, options);
|
|
67
|
+
// Build and execute swap transaction
|
|
68
|
+
const swapRes = await (0, http_1.httpPost)(`${base(config)}/swap`, {
|
|
69
|
+
quote,
|
|
70
|
+
userPublicKey: options.userPublicKey,
|
|
71
|
+
...(options.serializedTransaction && { transaction: options.serializedTransaction }),
|
|
72
|
+
}, config.timeout);
|
|
73
|
+
const { VersionedTransaction } = await Promise.resolve().then(() => __importStar(require('@solana/web3.js')));
|
|
74
|
+
const txBuf = Buffer.from(swapRes.transaction, 'base64');
|
|
75
|
+
const tx = VersionedTransaction.deserialize(txBuf);
|
|
76
|
+
const signature = await conn.sendRawTransaction(tx.serialize(), {
|
|
77
|
+
skipPreflight: false,
|
|
78
|
+
maxRetries: 3,
|
|
79
|
+
});
|
|
80
|
+
const { blockhash, lastValidBlockHeight } = await conn.getLatestBlockhash('confirmed');
|
|
81
|
+
await conn.confirmTransaction({ signature, blockhash, lastValidBlockHeight }, config.commitment ?? 'confirmed');
|
|
82
|
+
return {
|
|
83
|
+
signature,
|
|
84
|
+
inAmount: quote.inAmount,
|
|
85
|
+
outAmount: quote.outAmount,
|
|
86
|
+
confirmationMs: Date.now() - startTime,
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
// Subscribe to streaming quotes via WebSocket (returns unsubscribe fn)
|
|
90
|
+
function subscribeTitanQuotes(config, options, onQuote, onError) {
|
|
91
|
+
(0, addon_guard_1.requireAddOn)(config, 'titan');
|
|
92
|
+
const wsUrl = config.endpointUrl
|
|
93
|
+
.replace(/\/$/, '')
|
|
94
|
+
.replace(/^http/, 'ws') + '/titan/v1/stream';
|
|
95
|
+
const ws = new WebSocket(wsUrl);
|
|
96
|
+
ws.onopen = () => {
|
|
97
|
+
ws.send(JSON.stringify({
|
|
98
|
+
type: 'subscribe',
|
|
99
|
+
inputMint: options.inputMint,
|
|
100
|
+
outputMint: options.outputMint,
|
|
101
|
+
amount: options.amount,
|
|
102
|
+
slippageBps: options.slippageBps ?? 50,
|
|
103
|
+
}));
|
|
104
|
+
};
|
|
105
|
+
ws.onmessage = (event) => {
|
|
106
|
+
try {
|
|
107
|
+
const quote = JSON.parse(event.data);
|
|
108
|
+
onQuote(quote);
|
|
109
|
+
}
|
|
110
|
+
catch (err) {
|
|
111
|
+
onError?.(err instanceof Error ? err : new Error(String(err)));
|
|
112
|
+
}
|
|
113
|
+
};
|
|
114
|
+
ws.onerror = (event) => {
|
|
115
|
+
onError?.(new Error(`Titan WebSocket error: ${JSON.stringify(event)}`));
|
|
116
|
+
};
|
|
117
|
+
return () => ws.close();
|
|
118
|
+
}
|
|
119
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/titan/index.ts"],"names":[],"mappings":"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"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -6,6 +6,15 @@ export interface QNConfig {
|
|
|
6
6
|
das?: boolean;
|
|
7
7
|
metis?: boolean;
|
|
8
8
|
yellowstone?: boolean;
|
|
9
|
+
pumpfun?: boolean;
|
|
10
|
+
stablecoinBalance?: boolean;
|
|
11
|
+
openocean?: boolean;
|
|
12
|
+
merkle?: boolean;
|
|
13
|
+
blinklabs?: boolean;
|
|
14
|
+
iris?: boolean;
|
|
15
|
+
goldrush?: boolean;
|
|
16
|
+
titan?: boolean;
|
|
17
|
+
scorechain?: boolean;
|
|
9
18
|
};
|
|
10
19
|
commitment?: 'processed' | 'confirmed' | 'finalized';
|
|
11
20
|
timeout?: number;
|
|
@@ -206,6 +215,231 @@ export interface AddOnCheckResult {
|
|
|
206
215
|
swaps: boolean;
|
|
207
216
|
yellowstoneStream: boolean;
|
|
208
217
|
jitoBundle: boolean;
|
|
218
|
+
pumpFun: boolean;
|
|
219
|
+
stablecoinBalances: boolean;
|
|
220
|
+
openOceanSwaps: boolean;
|
|
221
|
+
merkleProtection: boolean;
|
|
222
|
+
blinkLabsProtection: boolean;
|
|
223
|
+
irisTransactions: boolean;
|
|
224
|
+
goldRushData: boolean;
|
|
225
|
+
titanSwaps: boolean;
|
|
226
|
+
riskAssessment: boolean;
|
|
209
227
|
};
|
|
210
228
|
}
|
|
229
|
+
export interface PumpFunToken {
|
|
230
|
+
mint: string;
|
|
231
|
+
name: string;
|
|
232
|
+
symbol: string;
|
|
233
|
+
description?: string;
|
|
234
|
+
image?: string;
|
|
235
|
+
creator: string;
|
|
236
|
+
createdTimestamp: number;
|
|
237
|
+
marketCapSol: number;
|
|
238
|
+
usdMarketCap?: number;
|
|
239
|
+
price: number;
|
|
240
|
+
bondingCurve: {
|
|
241
|
+
virtualTokenReserves: string;
|
|
242
|
+
virtualSolReserves: string;
|
|
243
|
+
realTokenReserves: string;
|
|
244
|
+
realSolReserves: string;
|
|
245
|
+
tokenTotalSupply: string;
|
|
246
|
+
complete: boolean;
|
|
247
|
+
};
|
|
248
|
+
raydiumPool?: string;
|
|
249
|
+
graduated: boolean;
|
|
250
|
+
website?: string;
|
|
251
|
+
twitter?: string;
|
|
252
|
+
telegram?: string;
|
|
253
|
+
}
|
|
254
|
+
export interface PumpFunTokenHolder {
|
|
255
|
+
address: string;
|
|
256
|
+
balance: string;
|
|
257
|
+
percentage: number;
|
|
258
|
+
}
|
|
259
|
+
export interface PumpFunTrade {
|
|
260
|
+
signature: string;
|
|
261
|
+
mint: string;
|
|
262
|
+
solAmount: string;
|
|
263
|
+
tokenAmount: string;
|
|
264
|
+
isBuy: boolean;
|
|
265
|
+
user: string;
|
|
266
|
+
timestamp: number;
|
|
267
|
+
slot: number;
|
|
268
|
+
}
|
|
269
|
+
export interface GetPumpFunTokensOptions {
|
|
270
|
+
limit?: number;
|
|
271
|
+
offset?: number;
|
|
272
|
+
includeNsfw?: boolean;
|
|
273
|
+
}
|
|
274
|
+
export interface GetPumpFunTokensByCreatorOptions {
|
|
275
|
+
creator: string;
|
|
276
|
+
limit?: number;
|
|
277
|
+
offset?: number;
|
|
278
|
+
}
|
|
279
|
+
export interface GetPumpFunTradesOptions {
|
|
280
|
+
limit?: number;
|
|
281
|
+
offset?: number;
|
|
282
|
+
}
|
|
283
|
+
export interface StablecoinBalance {
|
|
284
|
+
chain: string;
|
|
285
|
+
contractAddress: string;
|
|
286
|
+
name: string;
|
|
287
|
+
symbol: string;
|
|
288
|
+
decimals: number;
|
|
289
|
+
balance: string;
|
|
290
|
+
usdValue: number;
|
|
291
|
+
logo?: string;
|
|
292
|
+
}
|
|
293
|
+
export interface GetStablecoinBalanceOptions {
|
|
294
|
+
walletAddress: string;
|
|
295
|
+
chains?: string[];
|
|
296
|
+
}
|
|
297
|
+
export interface StablecoinBalanceResult {
|
|
298
|
+
walletAddress: string;
|
|
299
|
+
totalUsdValue: number;
|
|
300
|
+
balances: StablecoinBalance[];
|
|
301
|
+
}
|
|
302
|
+
export interface OpenOceanToken {
|
|
303
|
+
address: string;
|
|
304
|
+
name: string;
|
|
305
|
+
symbol: string;
|
|
306
|
+
decimals: number;
|
|
307
|
+
}
|
|
308
|
+
export interface OpenOceanQuoteOptions {
|
|
309
|
+
inTokenAddress: string;
|
|
310
|
+
outTokenAddress: string;
|
|
311
|
+
amount: string;
|
|
312
|
+
slippage?: number;
|
|
313
|
+
}
|
|
314
|
+
export interface OpenOceanQuote {
|
|
315
|
+
inToken: OpenOceanToken;
|
|
316
|
+
outToken: OpenOceanToken;
|
|
317
|
+
inAmount: string;
|
|
318
|
+
outAmount: string;
|
|
319
|
+
minOutAmount: string;
|
|
320
|
+
priceImpact: string;
|
|
321
|
+
estimatedGas: string;
|
|
322
|
+
path: Array<{
|
|
323
|
+
name: string;
|
|
324
|
+
part: number;
|
|
325
|
+
}>;
|
|
326
|
+
}
|
|
327
|
+
export interface OpenOceanSwapOptions extends OpenOceanQuoteOptions {
|
|
328
|
+
userAddress: string;
|
|
329
|
+
}
|
|
330
|
+
export interface OpenOceanSwapResult {
|
|
331
|
+
signature: string;
|
|
332
|
+
inAmount: string;
|
|
333
|
+
outAmount: string;
|
|
334
|
+
confirmationMs: number;
|
|
335
|
+
}
|
|
336
|
+
export interface MevProtectedTxOptions {
|
|
337
|
+
serializedTransaction: string;
|
|
338
|
+
tipLamports?: number;
|
|
339
|
+
}
|
|
340
|
+
export interface MevTxResult {
|
|
341
|
+
signature: string;
|
|
342
|
+
provider: 'merkle' | 'blinklabs';
|
|
343
|
+
confirmationMs: number;
|
|
344
|
+
}
|
|
345
|
+
export interface IrisTxOptions {
|
|
346
|
+
serializedTransaction: string;
|
|
347
|
+
skipPreflight?: boolean;
|
|
348
|
+
maxRetries?: number;
|
|
349
|
+
}
|
|
350
|
+
export interface IrisTxResult {
|
|
351
|
+
signature: string;
|
|
352
|
+
slot?: number;
|
|
353
|
+
confirmationMs: number;
|
|
354
|
+
}
|
|
355
|
+
export interface GoldRushTokenBalance {
|
|
356
|
+
contractAddress: string;
|
|
357
|
+
name: string;
|
|
358
|
+
symbol: string;
|
|
359
|
+
decimals: number;
|
|
360
|
+
logo?: string;
|
|
361
|
+
balance: string;
|
|
362
|
+
usdBalance?: string;
|
|
363
|
+
isSpam?: boolean;
|
|
364
|
+
}
|
|
365
|
+
export interface GoldRushBalancesResult {
|
|
366
|
+
chain: string;
|
|
367
|
+
address: string;
|
|
368
|
+
updatedAt: string;
|
|
369
|
+
items: GoldRushTokenBalance[];
|
|
370
|
+
}
|
|
371
|
+
export interface GoldRushTransaction {
|
|
372
|
+
blockSignedAt: string;
|
|
373
|
+
txHash: string;
|
|
374
|
+
successful: boolean;
|
|
375
|
+
fromAddress: string;
|
|
376
|
+
toAddress?: string;
|
|
377
|
+
value: string;
|
|
378
|
+
feesPaid: string;
|
|
379
|
+
gasSpent: string;
|
|
380
|
+
gasPrice: string;
|
|
381
|
+
}
|
|
382
|
+
export interface GetGoldRushBalancesOptions {
|
|
383
|
+
walletAddress: string;
|
|
384
|
+
chain?: string;
|
|
385
|
+
noSpam?: boolean;
|
|
386
|
+
quoteCurrency?: string;
|
|
387
|
+
}
|
|
388
|
+
export interface GetGoldRushTransactionsOptions {
|
|
389
|
+
walletAddress: string;
|
|
390
|
+
chain?: string;
|
|
391
|
+
pageSize?: number;
|
|
392
|
+
pageNumber?: number;
|
|
393
|
+
}
|
|
394
|
+
export interface TitanQuoteOptions {
|
|
395
|
+
inputMint: string;
|
|
396
|
+
outputMint: string;
|
|
397
|
+
amount: string;
|
|
398
|
+
slippageBps?: number;
|
|
399
|
+
}
|
|
400
|
+
export interface TitanSwapRoute {
|
|
401
|
+
dex: string;
|
|
402
|
+
percent: number;
|
|
403
|
+
inAmount: string;
|
|
404
|
+
outAmount: string;
|
|
405
|
+
}
|
|
406
|
+
export interface TitanSwapQuote {
|
|
407
|
+
inputMint: string;
|
|
408
|
+
outputMint: string;
|
|
409
|
+
inAmount: string;
|
|
410
|
+
outAmount: string;
|
|
411
|
+
minOutAmount: string;
|
|
412
|
+
priceImpactPct: string;
|
|
413
|
+
routes: TitanSwapRoute[];
|
|
414
|
+
timestamp: number;
|
|
415
|
+
}
|
|
416
|
+
export interface TitanSwapOptions extends TitanQuoteOptions {
|
|
417
|
+
userPublicKey: string;
|
|
418
|
+
serializedTransaction?: string;
|
|
419
|
+
}
|
|
420
|
+
export interface TitanSwapResult {
|
|
421
|
+
signature: string;
|
|
422
|
+
inAmount: string;
|
|
423
|
+
outAmount: string;
|
|
424
|
+
confirmationMs: number;
|
|
425
|
+
}
|
|
426
|
+
export interface AssessWalletRiskOptions {
|
|
427
|
+
address: string;
|
|
428
|
+
network?: string;
|
|
429
|
+
}
|
|
430
|
+
export interface RiskFlag {
|
|
431
|
+
category: string;
|
|
432
|
+
description: string;
|
|
433
|
+
severity: 'low' | 'medium' | 'high' | 'critical';
|
|
434
|
+
}
|
|
435
|
+
export interface WalletRiskAssessment {
|
|
436
|
+
address: string;
|
|
437
|
+
network: string;
|
|
438
|
+
riskScore: number;
|
|
439
|
+
riskLevel: 'low' | 'medium' | 'high' | 'severe';
|
|
440
|
+
amlStatus: 'clean' | 'flagged' | 'blocked';
|
|
441
|
+
flags: RiskFlag[];
|
|
442
|
+
reportUrl?: string;
|
|
443
|
+
assessedAt: string;
|
|
444
|
+
}
|
|
211
445
|
//# sourceMappingURL=index.d.ts.map
|