@webacy-xyz/sdk-threat 1.0.1
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/LICENSE +21 -0
- package/README.md +288 -0
- package/dist/cjs/client.js +165 -0
- package/dist/cjs/client.js.map +1 -0
- package/dist/cjs/index.js +33 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/package.json +1 -0
- package/dist/cjs/resources/account-trace.js +75 -0
- package/dist/cjs/resources/account-trace.js.map +1 -0
- package/dist/cjs/resources/addresses.js +162 -0
- package/dist/cjs/resources/addresses.js.map +1 -0
- package/dist/cjs/resources/contracts.js +187 -0
- package/dist/cjs/resources/contracts.js.map +1 -0
- package/dist/cjs/resources/index.js +18 -0
- package/dist/cjs/resources/index.js.map +1 -0
- package/dist/cjs/resources/ledger.js +123 -0
- package/dist/cjs/resources/ledger.js.map +1 -0
- package/dist/cjs/resources/url.js +92 -0
- package/dist/cjs/resources/url.js.map +1 -0
- package/dist/cjs/resources/usage.js +124 -0
- package/dist/cjs/resources/usage.js.map +1 -0
- package/dist/cjs/resources/wallets.js +122 -0
- package/dist/cjs/resources/wallets.js.map +1 -0
- package/dist/cjs/types/account-trace.js +3 -0
- package/dist/cjs/types/account-trace.js.map +1 -0
- package/dist/cjs/types/address.js +3 -0
- package/dist/cjs/types/address.js.map +1 -0
- package/dist/cjs/types/contract.js +3 -0
- package/dist/cjs/types/contract.js.map +1 -0
- package/dist/cjs/types/index.js +3 -0
- package/dist/cjs/types/index.js.map +1 -0
- package/dist/cjs/types/ledger.js +3 -0
- package/dist/cjs/types/ledger.js.map +1 -0
- package/dist/cjs/types/url.js +3 -0
- package/dist/cjs/types/url.js.map +1 -0
- package/dist/cjs/types/usage.js +3 -0
- package/dist/cjs/types/usage.js.map +1 -0
- package/dist/cjs/types/wallet.js +3 -0
- package/dist/cjs/types/wallet.js.map +1 -0
- package/dist/esm/client.js +161 -0
- package/dist/esm/client.js.map +1 -0
- package/dist/esm/index.js +7 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/package.json +1 -0
- package/dist/esm/resources/account-trace.js +71 -0
- package/dist/esm/resources/account-trace.js.map +1 -0
- package/dist/esm/resources/addresses.js +158 -0
- package/dist/esm/resources/addresses.js.map +1 -0
- package/dist/esm/resources/contracts.js +183 -0
- package/dist/esm/resources/contracts.js.map +1 -0
- package/dist/esm/resources/index.js +8 -0
- package/dist/esm/resources/index.js.map +1 -0
- package/dist/esm/resources/ledger.js +119 -0
- package/dist/esm/resources/ledger.js.map +1 -0
- package/dist/esm/resources/url.js +88 -0
- package/dist/esm/resources/url.js.map +1 -0
- package/dist/esm/resources/usage.js +120 -0
- package/dist/esm/resources/usage.js.map +1 -0
- package/dist/esm/resources/wallets.js +118 -0
- package/dist/esm/resources/wallets.js.map +1 -0
- package/dist/esm/types/account-trace.js +2 -0
- package/dist/esm/types/account-trace.js.map +1 -0
- package/dist/esm/types/address.js +2 -0
- package/dist/esm/types/address.js.map +1 -0
- package/dist/esm/types/contract.js +2 -0
- package/dist/esm/types/contract.js.map +1 -0
- package/dist/esm/types/index.js +2 -0
- package/dist/esm/types/index.js.map +1 -0
- package/dist/esm/types/ledger.js +2 -0
- package/dist/esm/types/ledger.js.map +1 -0
- package/dist/esm/types/url.js +2 -0
- package/dist/esm/types/url.js.map +1 -0
- package/dist/esm/types/usage.js +2 -0
- package/dist/esm/types/usage.js.map +1 -0
- package/dist/esm/types/wallet.js +2 -0
- package/dist/esm/types/wallet.js.map +1 -0
- package/dist/types/client.d.ts +145 -0
- package/dist/types/client.d.ts.map +1 -0
- package/dist/types/index.d.ts +5 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/resources/account-trace.d.ts +59 -0
- package/dist/types/resources/account-trace.d.ts.map +1 -0
- package/dist/types/resources/addresses.d.ts +118 -0
- package/dist/types/resources/addresses.d.ts.map +1 -0
- package/dist/types/resources/contracts.d.ts +148 -0
- package/dist/types/resources/contracts.d.ts.map +1 -0
- package/dist/types/resources/index.d.ts +8 -0
- package/dist/types/resources/index.d.ts.map +1 -0
- package/dist/types/resources/ledger.d.ts +107 -0
- package/dist/types/resources/ledger.d.ts.map +1 -0
- package/dist/types/resources/url.d.ts +69 -0
- package/dist/types/resources/url.d.ts.map +1 -0
- package/dist/types/resources/usage.d.ts +99 -0
- package/dist/types/resources/usage.d.ts.map +1 -0
- package/dist/types/resources/wallets.d.ts +93 -0
- package/dist/types/resources/wallets.d.ts.map +1 -0
- package/dist/types/types/account-trace.d.ts +68 -0
- package/dist/types/types/account-trace.d.ts.map +1 -0
- package/dist/types/types/address.d.ts +266 -0
- package/dist/types/types/address.d.ts.map +1 -0
- package/dist/types/types/contract.d.ts +169 -0
- package/dist/types/types/contract.d.ts.map +1 -0
- package/dist/types/types/index.d.ts +8 -0
- package/dist/types/types/index.d.ts.map +1 -0
- package/dist/types/types/ledger.d.ts +106 -0
- package/dist/types/types/ledger.d.ts.map +1 -0
- package/dist/types/types/url.d.ts +39 -0
- package/dist/types/types/url.d.ts.map +1 -0
- package/dist/types/types/usage.d.ts +74 -0
- package/dist/types/types/usage.d.ts.map +1 -0
- package/dist/types/types/wallet.d.ts +129 -0
- package/dist/types/types/wallet.d.ts.map +1 -0
- package/package.json +74 -0
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resource for API usage and quota management
|
|
3
|
+
*
|
|
4
|
+
* Provides access to API usage statistics, current quota,
|
|
5
|
+
* and available plans.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```typescript
|
|
9
|
+
* const current = await client.usage.getCurrent();
|
|
10
|
+
* console.log(`Used: ${current.calls_used}/${current.calls_limit}`);
|
|
11
|
+
* ```
|
|
12
|
+
*/
|
|
13
|
+
export class UsageResource {
|
|
14
|
+
httpClient;
|
|
15
|
+
constructor(httpClient) {
|
|
16
|
+
this.httpClient = httpClient;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Get historical usage data
|
|
20
|
+
*
|
|
21
|
+
* Returns API usage statistics for a time period.
|
|
22
|
+
*
|
|
23
|
+
* @param options - Request options with date range
|
|
24
|
+
* @returns Historical usage data
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
* ```typescript
|
|
28
|
+
* const usage = await client.usage.getUsage({
|
|
29
|
+
* start_date: '2024-01-01',
|
|
30
|
+
* end_date: '2024-01-31',
|
|
31
|
+
* });
|
|
32
|
+
*
|
|
33
|
+
* console.log(`Total calls: ${usage.total_calls}`);
|
|
34
|
+
* console.log(`Period calls: ${usage.period_calls}`);
|
|
35
|
+
*
|
|
36
|
+
* // Usage by endpoint
|
|
37
|
+
* if (usage.by_endpoint) {
|
|
38
|
+
* for (const [endpoint, count] of Object.entries(usage.by_endpoint)) {
|
|
39
|
+
* console.log(`${endpoint}: ${count} calls`);
|
|
40
|
+
* }
|
|
41
|
+
* }
|
|
42
|
+
* ```
|
|
43
|
+
*/
|
|
44
|
+
async getUsage(options) {
|
|
45
|
+
const queryParams = new URLSearchParams();
|
|
46
|
+
if (options?.start_date) {
|
|
47
|
+
queryParams.append('start_date', options.start_date);
|
|
48
|
+
}
|
|
49
|
+
if (options?.end_date) {
|
|
50
|
+
queryParams.append('end_date', options.end_date);
|
|
51
|
+
}
|
|
52
|
+
const queryString = queryParams.toString();
|
|
53
|
+
const path = queryString ? `/usage?${queryString}` : '/usage';
|
|
54
|
+
const response = await this.httpClient.get(path, {
|
|
55
|
+
timeout: options?.timeout,
|
|
56
|
+
signal: options?.signal,
|
|
57
|
+
});
|
|
58
|
+
return response.data;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Get current usage status
|
|
62
|
+
*
|
|
63
|
+
* Returns current period usage and remaining quota.
|
|
64
|
+
*
|
|
65
|
+
* @param options - Request options
|
|
66
|
+
* @returns Current usage status
|
|
67
|
+
*
|
|
68
|
+
* @example
|
|
69
|
+
* ```typescript
|
|
70
|
+
* const current = await client.usage.getCurrent();
|
|
71
|
+
*
|
|
72
|
+
* console.log(`Plan: ${current.plan}`);
|
|
73
|
+
* console.log(`Used: ${current.calls_used}/${current.calls_limit}`);
|
|
74
|
+
* console.log(`Remaining: ${current.calls_remaining}`);
|
|
75
|
+
* console.log(`Usage: ${current.usage_percentage}%`);
|
|
76
|
+
* console.log(`Resets: ${current.reset_date}`);
|
|
77
|
+
*
|
|
78
|
+
* if (current.usage_percentage > 80) {
|
|
79
|
+
* console.warn('Approaching usage limit!');
|
|
80
|
+
* }
|
|
81
|
+
* ```
|
|
82
|
+
*/
|
|
83
|
+
async getCurrent(options) {
|
|
84
|
+
const response = await this.httpClient.get('/usage/current', {
|
|
85
|
+
timeout: options?.timeout,
|
|
86
|
+
signal: options?.signal,
|
|
87
|
+
});
|
|
88
|
+
return response.data;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Get available usage plans
|
|
92
|
+
*
|
|
93
|
+
* Returns list of available plans and their features.
|
|
94
|
+
*
|
|
95
|
+
* @param options - Request options
|
|
96
|
+
* @returns Available plans
|
|
97
|
+
*
|
|
98
|
+
* @example
|
|
99
|
+
* ```typescript
|
|
100
|
+
* const plans = await client.usage.getPlans();
|
|
101
|
+
*
|
|
102
|
+
* console.log(`Current plan: ${plans.current_plan}`);
|
|
103
|
+
*
|
|
104
|
+
* for (const plan of plans.plans) {
|
|
105
|
+
* console.log(`${plan.name}:`);
|
|
106
|
+
* console.log(` Monthly limit: ${plan.monthly_limit}`);
|
|
107
|
+
* console.log(` Rate limit: ${plan.rate_limit}/sec`);
|
|
108
|
+
* console.log(` Features: ${plan.features.join(', ')}`);
|
|
109
|
+
* }
|
|
110
|
+
* ```
|
|
111
|
+
*/
|
|
112
|
+
async getPlans(options) {
|
|
113
|
+
const response = await this.httpClient.get('/usage/usagePlans', {
|
|
114
|
+
timeout: options?.timeout,
|
|
115
|
+
signal: options?.signal,
|
|
116
|
+
});
|
|
117
|
+
return response.data;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
//# sourceMappingURL=usage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usage.js","sourceRoot":"","sources":["../../../src/resources/usage.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,aAAa;IACK;IAA7B,YAA6B,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;IAAG,CAAC;IAEvD;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,KAAK,CAAC,QAAQ,CAAC,OAAsB;QACnC,MAAM,WAAW,GAAG,IAAI,eAAe,EAAE,CAAC;QAE1C,IAAI,OAAO,EAAE,UAAU,EAAE,CAAC;YACxB,WAAW,CAAC,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;QACvD,CAAC;QACD,IAAI,OAAO,EAAE,QAAQ,EAAE,CAAC;YACtB,WAAW,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;QACnD,CAAC;QAED,MAAM,WAAW,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAC;QAC3C,MAAM,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC,UAAU,WAAW,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;QAE9D,MAAM,QAAQ,GAA4B,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE;YACxE,OAAO,EAAE,OAAO,EAAE,OAAO;YACzB,MAAM,EAAE,OAAO,EAAE,MAAM;SACxB,CAAC,CAAC;QAEH,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,KAAK,CAAC,UAAU,CAAC,OAGhB;QACC,MAAM,QAAQ,GAAuC,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAC5E,gBAAgB,EAChB;YACE,OAAO,EAAE,OAAO,EAAE,OAAO;YACzB,MAAM,EAAE,OAAO,EAAE,MAAM;SACxB,CACF,CAAC;QAEF,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,KAAK,CAAC,QAAQ,CAAC,OAGd;QACC,MAAM,QAAQ,GAAqC,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAC1E,mBAAmB,EACnB;YACE,OAAO,EAAE,OAAO,EAAE,OAAO;YACzB,MAAM,EAAE,OAAO,EAAE,MAAM;SACxB,CACF,CAAC;QAEF,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;CACF"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import { BaseResource } from '@webacy-xyz/sdk-core';
|
|
2
|
+
/**
|
|
3
|
+
* Resource for wallet transaction and approval analysis
|
|
4
|
+
*
|
|
5
|
+
* Provides security analysis for wallet activity including:
|
|
6
|
+
* - Transaction risk analysis
|
|
7
|
+
* - Token approval monitoring
|
|
8
|
+
* - Counterparty risk assessment
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```typescript
|
|
12
|
+
* // Get transaction risks
|
|
13
|
+
* const txs = await client.wallets.getTransactions('0x...', { chain: Chain.ETH });
|
|
14
|
+
*
|
|
15
|
+
* // Get token approvals
|
|
16
|
+
* const approvals = await client.wallets.getApprovals('0x...', { chain: Chain.ETH });
|
|
17
|
+
*
|
|
18
|
+
* // With default chain configured, chain can be omitted
|
|
19
|
+
* const client = new ThreatClient({ apiKey: '...', defaultChain: Chain.ETH });
|
|
20
|
+
* const txs = await client.wallets.getTransactions('0x...'); // Uses ETH
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
export class WalletsResource extends BaseResource {
|
|
24
|
+
/**
|
|
25
|
+
* Get wallet transaction risk analysis
|
|
26
|
+
*
|
|
27
|
+
* Analyzes recent transactions for security risks including:
|
|
28
|
+
* - Interactions with risky addresses
|
|
29
|
+
* - Sanctioned counterparties
|
|
30
|
+
* - Suspicious patterns
|
|
31
|
+
*
|
|
32
|
+
* @param address - Wallet address
|
|
33
|
+
* @param options - Request options (chain is optional if defaultChain is set)
|
|
34
|
+
* @returns Transaction risk analysis
|
|
35
|
+
*
|
|
36
|
+
* @example
|
|
37
|
+
* ```typescript
|
|
38
|
+
* const result = await client.wallets.getTransactions('0x...', {
|
|
39
|
+
* chain: Chain.ETH,
|
|
40
|
+
* limit: 50,
|
|
41
|
+
* });
|
|
42
|
+
*
|
|
43
|
+
* // With default chain configured
|
|
44
|
+
* const result = await client.wallets.getTransactions('0x...');
|
|
45
|
+
*
|
|
46
|
+
* console.log(`Total issues: ${result.count}`);
|
|
47
|
+
* console.log(`High risk: ${result.high}`);
|
|
48
|
+
* console.log(`Overall risk: ${result.overallRisk}`);
|
|
49
|
+
*
|
|
50
|
+
* for (const issue of result.issues) {
|
|
51
|
+
* if (issue.transaction.sanctioned_address) {
|
|
52
|
+
* console.error('Transaction with sanctioned address!');
|
|
53
|
+
* }
|
|
54
|
+
* }
|
|
55
|
+
* ```
|
|
56
|
+
*/
|
|
57
|
+
async getTransactions(address, options = {}) {
|
|
58
|
+
const chain = this.resolveChain(options);
|
|
59
|
+
this.validateAddress(address, chain);
|
|
60
|
+
const queryParams = new URLSearchParams();
|
|
61
|
+
queryParams.append('chain', chain);
|
|
62
|
+
if (options.limit !== undefined) {
|
|
63
|
+
queryParams.append('limit', String(options.limit));
|
|
64
|
+
}
|
|
65
|
+
if (options.offset !== undefined) {
|
|
66
|
+
queryParams.append('offset', String(options.offset));
|
|
67
|
+
}
|
|
68
|
+
const response = await this.httpClient.get(`/wallets/${encodeURIComponent(address)}/transactions?${queryParams.toString()}`, {
|
|
69
|
+
timeout: options.timeout,
|
|
70
|
+
signal: options.signal,
|
|
71
|
+
});
|
|
72
|
+
return response.data;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Get wallet token approvals
|
|
76
|
+
*
|
|
77
|
+
* Lists all active token approvals for a wallet,
|
|
78
|
+
* with risk assessment for each spender.
|
|
79
|
+
*
|
|
80
|
+
* @param address - Wallet address
|
|
81
|
+
* @param options - Request options (chain is optional if defaultChain is set)
|
|
82
|
+
* @returns Token approvals with risk data
|
|
83
|
+
*
|
|
84
|
+
* @example
|
|
85
|
+
* ```typescript
|
|
86
|
+
* const result = await client.wallets.getApprovals('0x...', {
|
|
87
|
+
* chain: Chain.ETH,
|
|
88
|
+
* });
|
|
89
|
+
*
|
|
90
|
+
* // With default chain configured
|
|
91
|
+
* const result = await client.wallets.getApprovals('0x...');
|
|
92
|
+
*
|
|
93
|
+
* console.log(`Total approvals: ${result.count}`);
|
|
94
|
+
* console.log(`High risk approvals: ${result.high_risk_count}`);
|
|
95
|
+
*
|
|
96
|
+
* for (const approval of result.approvals) {
|
|
97
|
+
* if (approval.is_unlimited) {
|
|
98
|
+
* console.warn(`Unlimited approval to ${approval.spender}`);
|
|
99
|
+
* }
|
|
100
|
+
* if (approval.spender_risk && approval.spender_risk > 50) {
|
|
101
|
+
* console.error(`High risk spender: ${approval.spender}`);
|
|
102
|
+
* }
|
|
103
|
+
* }
|
|
104
|
+
* ```
|
|
105
|
+
*/
|
|
106
|
+
async getApprovals(address, options = {}) {
|
|
107
|
+
const chain = this.resolveChain(options);
|
|
108
|
+
this.validateAddress(address, chain);
|
|
109
|
+
const queryParams = new URLSearchParams();
|
|
110
|
+
queryParams.append('chain', chain);
|
|
111
|
+
const response = await this.httpClient.get(`/wallets/${encodeURIComponent(address)}/approvals?${queryParams.toString()}`, {
|
|
112
|
+
timeout: options.timeout,
|
|
113
|
+
signal: options.signal,
|
|
114
|
+
});
|
|
115
|
+
return response.data;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
//# sourceMappingURL=wallets.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wallets.js","sourceRoot":"","sources":["../../../src/resources/wallets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAQlE;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,OAAO,eAAgB,SAAQ,YAAY;IAC/C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgCG;IACH,KAAK,CAAC,eAAe,CACnB,OAAe,EACf,UAAqC,EAAE;QAEvC,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QACzC,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAErC,MAAM,WAAW,GAAG,IAAI,eAAe,EAAE,CAAC;QAC1C,WAAW,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAEnC,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAChC,WAAW,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;QACrD,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACjC,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;QACvD,CAAC;QAED,MAAM,QAAQ,GAA6C,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAClF,YAAY,kBAAkB,CAAC,OAAO,CAAC,iBAAiB,WAAW,CAAC,QAAQ,EAAE,EAAE,EAChF;YACE,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CACF,CAAC;QAEF,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+BG;IACH,KAAK,CAAC,YAAY,CAChB,OAAe,EACf,UAAkC,EAAE;QAEpC,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QACzC,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAErC,MAAM,WAAW,GAAG,IAAI,eAAe,EAAE,CAAC;QAC1C,WAAW,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAEnC,MAAM,QAAQ,GAA0C,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAC/E,YAAY,kBAAkB,CAAC,OAAO,CAAC,cAAc,WAAW,CAAC,QAAQ,EAAE,EAAE,EAC7E;YACE,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CACF,CAAC;QAEF,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"account-trace.js","sourceRoot":"","sources":["../../../src/types/account-trace.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"address.js","sourceRoot":"","sources":["../../../src/types/address.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contract.js","sourceRoot":"","sources":["../../../src/types/contract.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ledger.js","sourceRoot":"","sources":["../../../src/types/ledger.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"url.js","sourceRoot":"","sources":["../../../src/types/url.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usage.js","sourceRoot":"","sources":["../../../src/types/usage.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wallet.js","sourceRoot":"","sources":["../../../src/types/wallet.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
import { BaseClient, WebacyClientConfig, RequestInterceptor, ResponseInterceptor, ErrorInterceptor } from '@webacy-xyz/sdk-core';
|
|
2
|
+
import { AddressesResource } from './resources/addresses';
|
|
3
|
+
import { ContractsResource } from './resources/contracts';
|
|
4
|
+
import { UrlResource } from './resources/url';
|
|
5
|
+
import { WalletsResource } from './resources/wallets';
|
|
6
|
+
import { LedgerResource } from './resources/ledger';
|
|
7
|
+
import { AccountTraceResource } from './resources/account-trace';
|
|
8
|
+
import { UsageResource } from './resources/usage';
|
|
9
|
+
/**
|
|
10
|
+
* Webacy Threat SDK Client
|
|
11
|
+
*
|
|
12
|
+
* Provides access to threat and risk analysis including address risk,
|
|
13
|
+
* sanctions screening, contract security, URL safety, and more.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```typescript
|
|
17
|
+
* import { ThreatClient, Chain, RiskModule } from '@webacy-xyz/sdk-threat';
|
|
18
|
+
*
|
|
19
|
+
* const client = new ThreatClient({
|
|
20
|
+
* apiKey: process.env.WEBACY_API_KEY!,
|
|
21
|
+
* });
|
|
22
|
+
*
|
|
23
|
+
* // Address risk analysis
|
|
24
|
+
* const risk = await client.addresses.analyze('0x...', { chain: 'eth' });
|
|
25
|
+
*
|
|
26
|
+
* // Sanctions screening
|
|
27
|
+
* const sanctioned = await client.addresses.checkSanctioned('0x...', { chain: 'eth' });
|
|
28
|
+
*
|
|
29
|
+
* // URL safety check
|
|
30
|
+
* const urlRisk = await client.url.check('https://suspicious-site.com');
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
export declare class ThreatClient extends BaseClient {
|
|
34
|
+
/**
|
|
35
|
+
* Addresses resource
|
|
36
|
+
*
|
|
37
|
+
* Comprehensive security analysis for blockchain addresses including
|
|
38
|
+
* risk scoring, sanctions screening, and address poisoning detection.
|
|
39
|
+
*/
|
|
40
|
+
readonly addresses: AddressesResource;
|
|
41
|
+
/**
|
|
42
|
+
* Contracts resource
|
|
43
|
+
*
|
|
44
|
+
* Smart contract security analysis including vulnerability detection,
|
|
45
|
+
* source code analysis, and tax detection.
|
|
46
|
+
*/
|
|
47
|
+
readonly contracts: ContractsResource;
|
|
48
|
+
/**
|
|
49
|
+
* URL resource
|
|
50
|
+
*
|
|
51
|
+
* URL safety analysis to identify phishing sites and malicious domains.
|
|
52
|
+
*/
|
|
53
|
+
readonly url: UrlResource;
|
|
54
|
+
/**
|
|
55
|
+
* Wallets resource
|
|
56
|
+
*
|
|
57
|
+
* Wallet activity analysis including transaction risks and token approvals.
|
|
58
|
+
*/
|
|
59
|
+
readonly wallets: WalletsResource;
|
|
60
|
+
/**
|
|
61
|
+
* Ledger resource
|
|
62
|
+
*
|
|
63
|
+
* Hardware wallet transaction scanning for secure signing.
|
|
64
|
+
*/
|
|
65
|
+
readonly ledger: LedgerResource;
|
|
66
|
+
/**
|
|
67
|
+
* Account trace resource
|
|
68
|
+
*
|
|
69
|
+
* Fund flow tracing to identify connections to risky entities.
|
|
70
|
+
*/
|
|
71
|
+
readonly accountTrace: AccountTraceResource;
|
|
72
|
+
/**
|
|
73
|
+
* Usage resource
|
|
74
|
+
*
|
|
75
|
+
* API usage statistics and quota management.
|
|
76
|
+
*/
|
|
77
|
+
readonly usage: UsageResource;
|
|
78
|
+
/**
|
|
79
|
+
* Create a new ThreatClient instance
|
|
80
|
+
*
|
|
81
|
+
* @param config - Client configuration
|
|
82
|
+
* @throws AuthenticationError if API key is not provided
|
|
83
|
+
*
|
|
84
|
+
* @example
|
|
85
|
+
* ```typescript
|
|
86
|
+
* // Basic setup
|
|
87
|
+
* const client = new ThreatClient({
|
|
88
|
+
* apiKey: 'your-api-key',
|
|
89
|
+
* });
|
|
90
|
+
*
|
|
91
|
+
* // With default chain (omit chain in API calls)
|
|
92
|
+
* const client = new ThreatClient({
|
|
93
|
+
* apiKey: 'your-api-key',
|
|
94
|
+
* defaultChain: Chain.ETH,
|
|
95
|
+
* });
|
|
96
|
+
*
|
|
97
|
+
* // With custom configuration
|
|
98
|
+
* const client = new ThreatClient({
|
|
99
|
+
* apiKey: 'your-api-key',
|
|
100
|
+
* timeout: 60000,
|
|
101
|
+
* retry: {
|
|
102
|
+
* maxRetries: 5,
|
|
103
|
+
* },
|
|
104
|
+
* });
|
|
105
|
+
* ```
|
|
106
|
+
*/
|
|
107
|
+
constructor(config: WebacyClientConfig);
|
|
108
|
+
/**
|
|
109
|
+
* Add a request interceptor
|
|
110
|
+
*
|
|
111
|
+
* @example
|
|
112
|
+
* ```typescript
|
|
113
|
+
* client.addRequestInterceptor((url, config) => {
|
|
114
|
+
* console.log(`Making request to ${url}`);
|
|
115
|
+
* return config;
|
|
116
|
+
* });
|
|
117
|
+
* ```
|
|
118
|
+
*/
|
|
119
|
+
addRequestInterceptor(interceptor: RequestInterceptor): void;
|
|
120
|
+
/**
|
|
121
|
+
* Add a response interceptor
|
|
122
|
+
*
|
|
123
|
+
* @example
|
|
124
|
+
* ```typescript
|
|
125
|
+
* client.addResponseInterceptor((response) => {
|
|
126
|
+
* console.log(`Received ${response.status} response`);
|
|
127
|
+
* return response;
|
|
128
|
+
* });
|
|
129
|
+
* ```
|
|
130
|
+
*/
|
|
131
|
+
addResponseInterceptor(interceptor: ResponseInterceptor): void;
|
|
132
|
+
/**
|
|
133
|
+
* Add an error interceptor
|
|
134
|
+
*
|
|
135
|
+
* @example
|
|
136
|
+
* ```typescript
|
|
137
|
+
* client.addErrorInterceptor((error) => {
|
|
138
|
+
* console.error(`Request failed: ${error.message}`);
|
|
139
|
+
* return error;
|
|
140
|
+
* });
|
|
141
|
+
* ```
|
|
142
|
+
*/
|
|
143
|
+
addErrorInterceptor(interceptor: ErrorInterceptor): void;
|
|
144
|
+
}
|
|
145
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,EACjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,YAAa,SAAQ,UAAU;IAC1C;;;;;OAKG;IACH,SAAgB,SAAS,EAAE,iBAAiB,CAAC;IAE7C;;;;;OAKG;IACH,SAAgB,SAAS,EAAE,iBAAiB,CAAC;IAE7C;;;;OAIG;IACH,SAAgB,GAAG,EAAE,WAAW,CAAC;IAEjC;;;;OAIG;IACH,SAAgB,OAAO,EAAE,eAAe,CAAC;IAEzC;;;;OAIG;IACH,SAAgB,MAAM,EAAE,cAAc,CAAC;IAEvC;;;;OAIG;IACH,SAAgB,YAAY,EAAE,oBAAoB,CAAC;IAEnD;;;;OAIG;IACH,SAAgB,KAAK,EAAE,aAAa,CAAC;IAErC;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;gBACS,MAAM,EAAE,kBAAkB;IAatC;;;;;;;;;;OAUG;IACM,qBAAqB,CAAC,WAAW,EAAE,kBAAkB,GAAG,IAAI;IAIrE;;;;;;;;;;OAUG;IACM,sBAAsB,CAAC,WAAW,EAAE,mBAAmB,GAAG,IAAI;IAIvE;;;;;;;;;;OAUG;IACM,mBAAmB,CAAC,WAAW,EAAE,gBAAgB,GAAG,IAAI;CAGlE"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { ThreatClient } from './client';
|
|
2
|
+
export { AddressesResource, ContractsResource, UrlResource, WalletsResource, LedgerResource, AccountTraceResource, UsageResource, } from './resources';
|
|
3
|
+
export type { RiskIssue, FundFlowRisk, FundFlowData, AddressInfo, TokenRiskInfo, TaxInfo, AccessControlInfo, AddressDetails, DeployerRisk, AddressRiskResponse, SanctionedResponse, PoisoningResponse, AddressAnalysisOptions, SanctionsOptions, PoisoningOptions, ContractRiskResponse, SourceCodeAnalysis, Vulnerability, ContractSourceCodeResponse, TokenTaxResponse, SolidityAnalysisRequest, SolidityAnalysisResponse, ContractAnalysisOptions, SourceCodeOptions, TaxOptions, UrlRiskResponse, UrlAddResponse, UrlCheckOptions, TransactionIssue, TransactionDetails, WalletTransactionsResponse, TokenApproval, WalletApprovalsResponse, WalletTransactionsOptions, WalletApprovalsOptions, LedgerFamily, LedgerTransactionData, LedgerScanRequest, EIP712TypedData, LedgerEIP712Request, LedgerRisk, LedgerScanResponse, LedgerScanOptions, AccountTraceResponse, TraceConnection, TraceSummary, AccountTraceOptions, UsageData, CurrentUsageResponse, UsagePlan, UsagePlansResponse, UsageOptions, } from './types';
|
|
4
|
+
export { Chain, ChainCompatibility, isEvmChain, CHAIN_NAMES, RiskModule, RiskScore, RiskLevel, TypeOfAddress, TokenStandard, WebacyError, AuthenticationError, RateLimitError, ValidationError, NotFoundError, NetworkError, type WebacyClientConfig, type RiskTag, type InformationalTag, type RiskCategory, type TokenMetadata, } from '@webacy-xyz/sdk-core';
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAGxC,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,WAAW,EACX,eAAe,EACf,cAAc,EACd,oBAAoB,EACpB,aAAa,GACd,MAAM,aAAa,CAAC;AAGrB,YAAY,EAEV,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,aAAa,EACb,OAAO,EACP,iBAAiB,EACjB,cAAc,EACd,YAAY,EACZ,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,sBAAsB,EACtB,gBAAgB,EAChB,gBAAgB,EAEhB,oBAAoB,EACpB,kBAAkB,EAClB,aAAa,EACb,0BAA0B,EAC1B,gBAAgB,EAChB,uBAAuB,EACvB,wBAAwB,EACxB,uBAAuB,EACvB,iBAAiB,EACjB,UAAU,EAEV,eAAe,EACf,cAAc,EACd,eAAe,EAEf,gBAAgB,EAChB,kBAAkB,EAClB,0BAA0B,EAC1B,aAAa,EACb,uBAAuB,EACvB,yBAAyB,EACzB,sBAAsB,EAEtB,YAAY,EACZ,qBAAqB,EACrB,iBAAiB,EACjB,eAAe,EACf,mBAAmB,EACnB,UAAU,EACV,kBAAkB,EAClB,iBAAiB,EAEjB,oBAAoB,EACpB,eAAe,EACf,YAAY,EACZ,mBAAmB,EAEnB,SAAS,EACT,oBAAoB,EACpB,SAAS,EACT,kBAAkB,EAClB,YAAY,GACb,MAAM,SAAS,CAAC;AAGjB,OAAO,EACL,KAAK,EACL,kBAAkB,EAClB,UAAU,EACV,WAAW,EACX,UAAU,EACV,SAAS,EACT,SAAS,EACT,aAAa,EACb,aAAa,EACb,WAAW,EACX,mBAAmB,EACnB,cAAc,EACd,eAAe,EACf,aAAa,EACb,YAAY,EACZ,KAAK,kBAAkB,EACvB,KAAK,OAAO,EACZ,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,aAAa,GACnB,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { BaseResource } from '@webacy-xyz/sdk-core';
|
|
2
|
+
import { AccountTraceResponse, AccountTraceOptions } from '../types';
|
|
3
|
+
/**
|
|
4
|
+
* Resource for account fund flow tracing
|
|
5
|
+
*
|
|
6
|
+
* Traces fund flows to and from addresses to identify
|
|
7
|
+
* connections to risky entities.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```typescript
|
|
11
|
+
* const trace = await client.accountTrace.trace('0x...', { chain: Chain.ETH });
|
|
12
|
+
* console.log(`Sanctioned connections: ${trace.summary.sanctioned_connections}`);
|
|
13
|
+
*
|
|
14
|
+
* // With default chain configured, chain can be omitted
|
|
15
|
+
* const client = new ThreatClient({ apiKey: '...', defaultChain: Chain.ETH });
|
|
16
|
+
* const trace = await client.accountTrace.trace('0x...'); // Uses ETH
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
export declare class AccountTraceResource extends BaseResource {
|
|
20
|
+
/**
|
|
21
|
+
* Trace account fund flows
|
|
22
|
+
*
|
|
23
|
+
* Analyzes connections to identify:
|
|
24
|
+
* - Direct counterparties
|
|
25
|
+
* - Sanctioned address connections
|
|
26
|
+
* - Mixer usage
|
|
27
|
+
* - High-risk entities
|
|
28
|
+
*
|
|
29
|
+
* @param address - Address to trace
|
|
30
|
+
* @param options - Trace options (chain is optional if defaultChain is set)
|
|
31
|
+
* @returns Fund flow trace result
|
|
32
|
+
*
|
|
33
|
+
* @example
|
|
34
|
+
* ```typescript
|
|
35
|
+
* const trace = await client.accountTrace.trace('0x...', {
|
|
36
|
+
* chain: Chain.ETH,
|
|
37
|
+
* depth: 2, // Trace 2 hops
|
|
38
|
+
* });
|
|
39
|
+
*
|
|
40
|
+
* // With default chain configured
|
|
41
|
+
* const trace = await client.accountTrace.trace('0x...');
|
|
42
|
+
*
|
|
43
|
+
* console.log(`Total connections: ${trace.summary.total_connections}`);
|
|
44
|
+
* console.log(`High risk: ${trace.summary.high_risk_connections}`);
|
|
45
|
+
* console.log(`Sanctioned: ${trace.summary.sanctioned_connections}`);
|
|
46
|
+
* console.log(`Mixers: ${trace.summary.mixer_connections}`);
|
|
47
|
+
*
|
|
48
|
+
* // Check individual connections
|
|
49
|
+
* for (const conn of trace.connections) {
|
|
50
|
+
* if (conn.risk_flags?.length) {
|
|
51
|
+
* console.warn(`Risky connection: ${conn.address}`);
|
|
52
|
+
* console.warn(`Flags: ${conn.risk_flags.join(', ')}`);
|
|
53
|
+
* }
|
|
54
|
+
* }
|
|
55
|
+
* ```
|
|
56
|
+
*/
|
|
57
|
+
trace(address: string, options?: AccountTraceOptions): Promise<AccountTraceResponse>;
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=account-trace.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"account-trace.d.ts","sourceRoot":"","sources":["../../../src/resources/account-trace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAErE;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,oBAAqB,SAAQ,YAAY;IACpD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAoCG;IACG,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,mBAAwB,GAAG,OAAO,CAAC,oBAAoB,CAAC;CAqB/F"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import { BaseResource } from '@webacy-xyz/sdk-core';
|
|
2
|
+
import { AddressRiskResponse, SanctionedResponse, PoisoningResponse, AddressAnalysisOptions, SanctionsOptions, PoisoningOptions } from '../types';
|
|
3
|
+
/**
|
|
4
|
+
* Resource for address risk analysis
|
|
5
|
+
*
|
|
6
|
+
* Provides comprehensive security analysis for blockchain addresses including:
|
|
7
|
+
* - Overall risk scoring
|
|
8
|
+
* - Risk categorization and tagging
|
|
9
|
+
* - Sanctions screening
|
|
10
|
+
* - Address poisoning detection
|
|
11
|
+
* - Fund flow analysis
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```typescript
|
|
15
|
+
* // Analyze an address
|
|
16
|
+
* const risk = await client.addresses.analyze('0x...', { chain: Chain.ETH });
|
|
17
|
+
*
|
|
18
|
+
* // Check sanctions
|
|
19
|
+
* const sanctioned = await client.addresses.checkSanctioned('0x...', { chain: Chain.ETH });
|
|
20
|
+
*
|
|
21
|
+
* // With default chain configured, chain can be omitted
|
|
22
|
+
* const client = new ThreatClient({ apiKey: '...', defaultChain: Chain.ETH });
|
|
23
|
+
* const risk = await client.addresses.analyze('0x...'); // Uses ETH
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
export declare class AddressesResource extends BaseResource {
|
|
27
|
+
/**
|
|
28
|
+
* Analyze an address for security risks
|
|
29
|
+
*
|
|
30
|
+
* Returns comprehensive risk analysis including:
|
|
31
|
+
* - Overall risk score (0-100)
|
|
32
|
+
* - Risk tags and categories
|
|
33
|
+
* - Detailed analysis data (optional)
|
|
34
|
+
* - Deployer risk for contracts (optional)
|
|
35
|
+
*
|
|
36
|
+
* @param address - Address to analyze
|
|
37
|
+
* @param options - Analysis options (chain is optional if defaultChain is set)
|
|
38
|
+
* @returns Address risk analysis result
|
|
39
|
+
*
|
|
40
|
+
* @example
|
|
41
|
+
* ```typescript
|
|
42
|
+
* // Basic analysis
|
|
43
|
+
* const risk = await client.addresses.analyze('0x742d35Cc...', {
|
|
44
|
+
* chain: Chain.ETH,
|
|
45
|
+
* });
|
|
46
|
+
* console.log(`Risk score: ${risk.overallRisk}`);
|
|
47
|
+
*
|
|
48
|
+
* // With default chain, options can be omitted
|
|
49
|
+
* const risk = await client.addresses.analyze('0x742d35Cc...');
|
|
50
|
+
*
|
|
51
|
+
* // With specific modules
|
|
52
|
+
* const risk = await client.addresses.analyze('0x...', {
|
|
53
|
+
* chain: Chain.ETH,
|
|
54
|
+
* modules: [RiskModule.SANCTIONS_COMPLIANCE, RiskModule.FUND_FLOW_SCREENING],
|
|
55
|
+
* });
|
|
56
|
+
*
|
|
57
|
+
* // With detailed response and deployer risk
|
|
58
|
+
* const risk = await client.addresses.analyze('0x...', {
|
|
59
|
+
* chain: Chain.ETH,
|
|
60
|
+
* detailed: true,
|
|
61
|
+
* deployerRisk: true,
|
|
62
|
+
* });
|
|
63
|
+
* ```
|
|
64
|
+
*/
|
|
65
|
+
analyze(address: string, options?: AddressAnalysisOptions): Promise<AddressRiskResponse>;
|
|
66
|
+
/**
|
|
67
|
+
* Check if an address is sanctioned
|
|
68
|
+
*
|
|
69
|
+
* Screens the address against known sanctions lists including OFAC.
|
|
70
|
+
*
|
|
71
|
+
* @param address - Address to check
|
|
72
|
+
* @param options - Request options (chain is optional if defaultChain is set)
|
|
73
|
+
* @returns Sanctions check result
|
|
74
|
+
*
|
|
75
|
+
* @example
|
|
76
|
+
* ```typescript
|
|
77
|
+
* const result = await client.addresses.checkSanctioned('0x...', {
|
|
78
|
+
* chain: Chain.ETH,
|
|
79
|
+
* });
|
|
80
|
+
*
|
|
81
|
+
* // With default chain configured
|
|
82
|
+
* const result = await client.addresses.checkSanctioned('0x...');
|
|
83
|
+
*
|
|
84
|
+
* if (result.is_sanctioned) {
|
|
85
|
+
* console.error('Address is sanctioned!');
|
|
86
|
+
* console.log('Details:', result.sanction_details);
|
|
87
|
+
* }
|
|
88
|
+
* ```
|
|
89
|
+
*/
|
|
90
|
+
checkSanctioned(address: string, options?: SanctionsOptions): Promise<SanctionedResponse>;
|
|
91
|
+
/**
|
|
92
|
+
* Check for address poisoning attacks
|
|
93
|
+
*
|
|
94
|
+
* Detects if an address has been targeted by address poisoning
|
|
95
|
+
* (dust attack) attempts.
|
|
96
|
+
*
|
|
97
|
+
* @param address - Address to check
|
|
98
|
+
* @param options - Request options (chain is optional if defaultChain is set)
|
|
99
|
+
* @returns Poisoning detection result
|
|
100
|
+
*
|
|
101
|
+
* @example
|
|
102
|
+
* ```typescript
|
|
103
|
+
* const result = await client.addresses.checkPoisoning('0x...', {
|
|
104
|
+
* chain: Chain.ETH,
|
|
105
|
+
* });
|
|
106
|
+
*
|
|
107
|
+
* // With default chain configured
|
|
108
|
+
* const result = await client.addresses.checkPoisoning('0x...');
|
|
109
|
+
*
|
|
110
|
+
* if (result.is_poisoned) {
|
|
111
|
+
* console.warn('Address poisoning detected!');
|
|
112
|
+
* console.log('Similar addresses:', result.poisoning_details?.similar_addresses);
|
|
113
|
+
* }
|
|
114
|
+
* ```
|
|
115
|
+
*/
|
|
116
|
+
checkPoisoning(address: string, options?: PoisoningOptions): Promise<PoisoningResponse>;
|
|
117
|
+
}
|
|
118
|
+
//# sourceMappingURL=addresses.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"addresses.d.ts","sourceRoot":"","sources":["../../../src/resources/addresses.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,sBAAsB,EACtB,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,UAAU,CAAC;AAElB;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,iBAAkB,SAAQ,YAAY;IACjD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAqCG;IACG,OAAO,CACX,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,mBAAmB,CAAC;IAgC/B;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACG,eAAe,CACnB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,kBAAkB,CAAC;IAkB9B;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACG,cAAc,CAClB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,iBAAiB,CAAC;CAiB9B"}
|