@clawnch/clawncher-sdk 0.3.1 → 0.3.3
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 +89 -0
- package/dist/deployer.d.ts +13 -0
- package/dist/deployer.d.ts.map +1 -1
- package/dist/deployer.js +8 -0
- package/dist/deployer.js.map +1 -1
- package/dist/errors.d.ts +2 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +2 -0
- package/dist/errors.js.map +1 -1
- package/dist/herd-auth.d.ts +79 -0
- package/dist/herd-auth.d.ts.map +1 -0
- package/dist/herd-auth.js +188 -0
- package/dist/herd-auth.js.map +1 -0
- package/dist/herd-hal.d.ts +92 -0
- package/dist/herd-hal.d.ts.map +1 -0
- package/dist/herd-hal.js +337 -0
- package/dist/herd-hal.js.map +1 -0
- package/dist/herd-types.d.ts +479 -0
- package/dist/herd-types.d.ts.map +1 -0
- package/dist/herd-types.js +18 -0
- package/dist/herd-types.js.map +1 -0
- package/dist/herd.d.ts +223 -0
- package/dist/herd.d.ts.map +1 -0
- package/dist/herd.js +1486 -0
- package/dist/herd.js.map +1 -0
- package/dist/hummingbot-types.d.ts +702 -0
- package/dist/hummingbot-types.d.ts.map +1 -0
- package/dist/hummingbot-types.js +12 -0
- package/dist/hummingbot-types.js.map +1 -0
- package/dist/hummingbot.d.ts +747 -0
- package/dist/hummingbot.d.ts.map +1 -0
- package/dist/hummingbot.js +1478 -0
- package/dist/hummingbot.js.map +1 -0
- package/dist/index.d.ts +8 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -0
- package/dist/index.js.map +1 -1
- package/dist/price.d.ts +16 -11
- package/dist/price.d.ts.map +1 -1
- package/dist/price.js +56 -25
- package/dist/price.js.map +1 -1
- package/dist/trader.d.ts +55 -0
- package/dist/trader.d.ts.map +1 -1
- package/dist/trader.js +81 -0
- package/dist/trader.js.map +1 -1
- package/dist/uniswap-quoter.d.ts +25 -4
- package/dist/uniswap-quoter.d.ts.map +1 -1
- package/dist/uniswap-quoter.js +52 -8
- package/dist/uniswap-quoter.js.map +1 -1
- package/dist/walletconnect-signer.d.ts +154 -0
- package/dist/walletconnect-signer.d.ts.map +1 -0
- package/dist/walletconnect-signer.js +307 -0
- package/dist/walletconnect-signer.js.map +1 -0
- package/package.json +1 -1
package/dist/herd.d.ts
ADDED
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HerdIntelligence — On-chain intelligence via Herd MCP
|
|
3
|
+
*
|
|
4
|
+
* Composes Herd's block explorer data with Clawncher's domain-specific
|
|
5
|
+
* on-chain reading to produce rich, actionable intelligence that neither
|
|
6
|
+
* system can provide alone.
|
|
7
|
+
*
|
|
8
|
+
* Architecture:
|
|
9
|
+
* - Uses the MCP SDK's HTTP client to call Herd's MCP server
|
|
10
|
+
* - Combines Herd responses with ClawnchReader / ClawnchPrice data
|
|
11
|
+
* - Caches responses with configurable TTLs
|
|
12
|
+
* - Degrades gracefully when Herd is unavailable
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```typescript
|
|
16
|
+
* const herd = new HerdIntelligence({
|
|
17
|
+
* accessToken: 'your-herd-token',
|
|
18
|
+
* publicClient,
|
|
19
|
+
* network: 'mainnet',
|
|
20
|
+
* });
|
|
21
|
+
*
|
|
22
|
+
* // Investigate any contract — enriched with Clawncher data if applicable
|
|
23
|
+
* const profile = await herd.investigateContract('0x...');
|
|
24
|
+
*
|
|
25
|
+
* // Audit a token for safety before interacting
|
|
26
|
+
* const audit = await herd.auditTokenSafety('0x...');
|
|
27
|
+
*
|
|
28
|
+
* // Validate a swap route against historical on-chain data
|
|
29
|
+
* const validation = await herd.validateSwapRoute('0xTokenIn', '0xTokenOut', '1.0');
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
import type { PublicClient } from 'viem';
|
|
33
|
+
import { type NetworkName } from './addresses.js';
|
|
34
|
+
import type { HerdBlockchain, HerdCacheTtl, ContractProfile, TokenAuditReport, TransactionProfile, WalletProfile, ContractRelationship, TokenFlowReport, VersionDiff, SwapValidation, FeeClaimValidation, CounterpartyProfile, Bookmark, BookmarkType } from './herd-types.js';
|
|
35
|
+
export type { ContractProfile, TokenAuditReport, TransactionProfile, WalletProfile, ContractRelationship, TokenFlowReport, VersionDiff, SwapValidation, FeeClaimValidation, CounterpartyProfile, Bookmark, BookmarkType, SecurityFlag, SecuritySeverity, } from './herd-types.js';
|
|
36
|
+
export interface HerdIntelligenceConfig {
|
|
37
|
+
/** Public client for on-chain reads (composing Herd data with ours) */
|
|
38
|
+
publicClient?: PublicClient;
|
|
39
|
+
/** Network for Clawncher address lookups */
|
|
40
|
+
network?: NetworkName;
|
|
41
|
+
/** Herd access token (or set HERD_ACCESS_TOKEN env var) */
|
|
42
|
+
accessToken?: string;
|
|
43
|
+
/** Herd MCP server URL */
|
|
44
|
+
mcpUrl?: string;
|
|
45
|
+
/** Default blockchain for Herd queries */
|
|
46
|
+
blockchain?: HerdBlockchain;
|
|
47
|
+
/** Cache TTL overrides in seconds */
|
|
48
|
+
cacheTtl?: Partial<HerdCacheTtl>;
|
|
49
|
+
/** Timeout for MCP calls in ms (default: 30000) */
|
|
50
|
+
timeout?: number;
|
|
51
|
+
}
|
|
52
|
+
export declare class HerdIntelligence {
|
|
53
|
+
private mcp;
|
|
54
|
+
private reader;
|
|
55
|
+
private price;
|
|
56
|
+
private publicClient;
|
|
57
|
+
private network;
|
|
58
|
+
private blockchain;
|
|
59
|
+
private addresses;
|
|
60
|
+
private knownAddresses;
|
|
61
|
+
private cache;
|
|
62
|
+
private cacheTtl;
|
|
63
|
+
constructor(config?: HerdIntelligenceConfig);
|
|
64
|
+
/**
|
|
65
|
+
* Check if the Herd MCP server is reachable and authenticated.
|
|
66
|
+
*/
|
|
67
|
+
isAvailable(): Promise<boolean>;
|
|
68
|
+
/**
|
|
69
|
+
* Investigate any contract on Base/Ethereum.
|
|
70
|
+
*
|
|
71
|
+
* Returns a rich profile combining Herd's metadata (ABI, proxy info,
|
|
72
|
+
* token data, protocol labels) with Clawncher-specific data when the
|
|
73
|
+
* contract is one of ours (vault status, MEV config, fees, etc.).
|
|
74
|
+
*
|
|
75
|
+
* Also runs security pattern analysis on the source code.
|
|
76
|
+
*/
|
|
77
|
+
investigateContract(address: string, options?: {
|
|
78
|
+
blockchain?: HerdBlockchain;
|
|
79
|
+
skipCodeAnalysis?: boolean;
|
|
80
|
+
}): Promise<ContractProfile>;
|
|
81
|
+
/**
|
|
82
|
+
* Investigate any transaction.
|
|
83
|
+
*
|
|
84
|
+
* Decodes traces, logs, and balance changes via Herd, then annotates
|
|
85
|
+
* with Clawncher-specific context (e.g. "this was a fee claim",
|
|
86
|
+
* "this was a V4 swap with 0.35 ETH output").
|
|
87
|
+
*/
|
|
88
|
+
investigateTransaction(txHash: string, options?: {
|
|
89
|
+
blockchain?: HerdBlockchain;
|
|
90
|
+
}): Promise<TransactionProfile>;
|
|
91
|
+
/**
|
|
92
|
+
* Investigate any wallet.
|
|
93
|
+
*
|
|
94
|
+
* Detects wallet type (EOA, 4337, 7702, multisig), shows holdings,
|
|
95
|
+
* and overlays Clawncher token positions and fee data if the wallet
|
|
96
|
+
* holds any of our tokens.
|
|
97
|
+
*/
|
|
98
|
+
investigateWallet(address: string, options?: {
|
|
99
|
+
blockchain?: HerdBlockchain;
|
|
100
|
+
includeActivity?: boolean;
|
|
101
|
+
}): Promise<WalletProfile>;
|
|
102
|
+
/**
|
|
103
|
+
* Map relationships for a contract — who calls it, what it calls,
|
|
104
|
+
* what it deployed. Highlights Clawncher contracts in the graph.
|
|
105
|
+
*/
|
|
106
|
+
getContractRelationships(address: string, options?: {
|
|
107
|
+
blockchain?: HerdBlockchain;
|
|
108
|
+
}): Promise<ContractRelationship>;
|
|
109
|
+
/**
|
|
110
|
+
* Track token transfer history for a holder.
|
|
111
|
+
* Annotates transfers with known contract labels.
|
|
112
|
+
*/
|
|
113
|
+
trackTokenFlow(holder: string, token: string, options?: {
|
|
114
|
+
blockchain?: HerdBlockchain;
|
|
115
|
+
page?: number;
|
|
116
|
+
}): Promise<TokenFlowReport>;
|
|
117
|
+
/**
|
|
118
|
+
* Compare implementation versions of an upgradeable contract.
|
|
119
|
+
*/
|
|
120
|
+
compareVersions(address: string, options?: {
|
|
121
|
+
blockchain?: HerdBlockchain;
|
|
122
|
+
allVersions?: boolean;
|
|
123
|
+
}): Promise<VersionDiff>;
|
|
124
|
+
/**
|
|
125
|
+
* Search contract source code using natural language or regex.
|
|
126
|
+
*/
|
|
127
|
+
searchCode(addresses: string[], query: string, options?: {
|
|
128
|
+
includeProxies?: boolean;
|
|
129
|
+
returnAllCode?: boolean;
|
|
130
|
+
}): Promise<string>;
|
|
131
|
+
/**
|
|
132
|
+
* Comprehensive security audit of any ERC-20 token.
|
|
133
|
+
*
|
|
134
|
+
* Combines contract metadata, code analysis for dangerous patterns,
|
|
135
|
+
* proxy/upgrade detection, and owner privilege scanning into a single
|
|
136
|
+
* risk report with a 0-100 score.
|
|
137
|
+
*/
|
|
138
|
+
auditTokenSafety(tokenAddress: string, options?: {
|
|
139
|
+
blockchain?: HerdBlockchain;
|
|
140
|
+
}): Promise<TokenAuditReport>;
|
|
141
|
+
/**
|
|
142
|
+
* Validate a swap route by comparing our on-chain quote against
|
|
143
|
+
* historical execution data from Herd.
|
|
144
|
+
*
|
|
145
|
+
* Answers: "Is our quote reasonable? What did recent swaps actually get?"
|
|
146
|
+
*/
|
|
147
|
+
validateSwapRoute(tokenIn: string, tokenOut: string, amountIn: string, options?: {
|
|
148
|
+
blockchain?: HerdBlockchain;
|
|
149
|
+
}): Promise<SwapValidation>;
|
|
150
|
+
/**
|
|
151
|
+
* Validate fee claim expectations against historical on-chain data.
|
|
152
|
+
*
|
|
153
|
+
* Looks up recent claimFees txs on our FeeLocker, decodes actual gas
|
|
154
|
+
* costs and outcomes, and compares with our ClawnchReader estimate.
|
|
155
|
+
*/
|
|
156
|
+
validateFeeClaim(tokenAddress: string, options?: {
|
|
157
|
+
blockchain?: HerdBlockchain;
|
|
158
|
+
}): Promise<FeeClaimValidation>;
|
|
159
|
+
/**
|
|
160
|
+
* Profile a counterparty wallet before interacting.
|
|
161
|
+
*
|
|
162
|
+
* Combines wallet overview, transaction history, deployed contracts,
|
|
163
|
+
* and derives a trust assessment.
|
|
164
|
+
*/
|
|
165
|
+
profileCounterparty(address: string, options?: {
|
|
166
|
+
blockchain?: HerdBlockchain;
|
|
167
|
+
}): Promise<CounterpartyProfile>;
|
|
168
|
+
/**
|
|
169
|
+
* Validate a factory contract before deploying through it.
|
|
170
|
+
* Checks metadata, recent successful deploys, and source code.
|
|
171
|
+
*/
|
|
172
|
+
validateDeployTarget(factoryAddress?: string, options?: {
|
|
173
|
+
blockchain?: HerdBlockchain;
|
|
174
|
+
}): Promise<{
|
|
175
|
+
factory: ContractProfile;
|
|
176
|
+
recentDeploys: number;
|
|
177
|
+
warnings: string[];
|
|
178
|
+
safe: boolean;
|
|
179
|
+
}>;
|
|
180
|
+
/**
|
|
181
|
+
* Get all bookmarks for the authenticated user.
|
|
182
|
+
*/
|
|
183
|
+
getBookmarks(): Promise<Bookmark[]>;
|
|
184
|
+
/**
|
|
185
|
+
* Add or update a bookmark.
|
|
186
|
+
*/
|
|
187
|
+
bookmark(objectType: BookmarkType, objectId: string, label?: string, blockchain?: HerdBlockchain): Promise<void>;
|
|
188
|
+
/**
|
|
189
|
+
* Remove a bookmark.
|
|
190
|
+
*/
|
|
191
|
+
removeBookmark(objectType: BookmarkType, objectId: string, blockchain?: HerdBlockchain): Promise<void>;
|
|
192
|
+
/**
|
|
193
|
+
* Clear the in-memory cache.
|
|
194
|
+
*/
|
|
195
|
+
clearCache(): void;
|
|
196
|
+
/**
|
|
197
|
+
* Call a Herd tool with retry and graceful error handling.
|
|
198
|
+
* Returns null instead of throwing on non-critical failures.
|
|
199
|
+
* Logs warnings on transient failures so callers can distinguish
|
|
200
|
+
* "no data" from "Herd unreachable".
|
|
201
|
+
*/
|
|
202
|
+
private callToolSafe;
|
|
203
|
+
private buildContractProfile;
|
|
204
|
+
private buildTransactionProfile;
|
|
205
|
+
private buildWalletProfile;
|
|
206
|
+
private buildRelationships;
|
|
207
|
+
private buildTokenFlowReport;
|
|
208
|
+
private buildVersionDiff;
|
|
209
|
+
private getClawncherOverlay;
|
|
210
|
+
private getClawncherWalletOverlay;
|
|
211
|
+
private analyzeContractSecurity;
|
|
212
|
+
private parseTraces;
|
|
213
|
+
private annotateTransaction;
|
|
214
|
+
private extractHistoricalSwaps;
|
|
215
|
+
private analyzeSwapValidation;
|
|
216
|
+
private extractHistoricalClaims;
|
|
217
|
+
private analyzeFeeClaimValidation;
|
|
218
|
+
private extractDeployedContracts;
|
|
219
|
+
private assessCounterpartyRisk;
|
|
220
|
+
private calculateAge;
|
|
221
|
+
private parseBookmarks;
|
|
222
|
+
}
|
|
223
|
+
//# sourceMappingURL=herd.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"herd.d.ts","sourceRoot":"","sources":["../src/herd.ts"],"names":[],"mappings":"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"}
|