@clawnch/clawtomaton 0.4.0 → 0.5.0

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.
Files changed (40) hide show
  1. package/README.md +9 -4
  2. package/dist/agent/index.d.ts.map +1 -1
  3. package/dist/agent/index.js +43 -0
  4. package/dist/agent/index.js.map +1 -1
  5. package/dist/agent/prompt.js +1 -1
  6. package/dist/agent/prompt.js.map +1 -1
  7. package/dist/index.d.ts +1 -1
  8. package/dist/index.d.ts.map +1 -1
  9. package/dist/skills/analyze-market.d.ts.map +1 -1
  10. package/dist/skills/analyze-market.js +24 -1
  11. package/dist/skills/analyze-market.js.map +1 -1
  12. package/dist/skills/index.d.ts +4 -1
  13. package/dist/skills/index.d.ts.map +1 -1
  14. package/dist/skills/index.js +13 -1
  15. package/dist/skills/index.js.map +1 -1
  16. package/dist/skills/liquidity.d.ts +16 -0
  17. package/dist/skills/liquidity.d.ts.map +1 -0
  18. package/dist/skills/liquidity.js +358 -0
  19. package/dist/skills/liquidity.js.map +1 -0
  20. package/dist/skills/permit2.d.ts +14 -0
  21. package/dist/skills/permit2.d.ts.map +1 -0
  22. package/dist/skills/permit2.js +181 -0
  23. package/dist/skills/permit2.js.map +1 -0
  24. package/dist/skills/uniswap-swap.d.ts +17 -0
  25. package/dist/skills/uniswap-swap.d.ts.map +1 -0
  26. package/dist/skills/uniswap-swap.js +268 -0
  27. package/dist/skills/uniswap-swap.js.map +1 -0
  28. package/dist/skills/xmtp.d.ts +15 -9
  29. package/dist/skills/xmtp.d.ts.map +1 -1
  30. package/dist/skills/xmtp.js +116 -14
  31. package/dist/skills/xmtp.js.map +1 -1
  32. package/dist/xmtp/client.d.ts +48 -0
  33. package/dist/xmtp/client.d.ts.map +1 -1
  34. package/dist/xmtp/client.js +175 -3
  35. package/dist/xmtp/client.js.map +1 -1
  36. package/dist/xmtp/index.d.ts +1 -1
  37. package/dist/xmtp/index.d.ts.map +1 -1
  38. package/dist/xmtp/types.d.ts +22 -1
  39. package/dist/xmtp/types.d.ts.map +1 -1
  40. package/package.json +2 -2
@@ -0,0 +1,268 @@
1
+ /**
2
+ * Skill: uniswap_swap — Direct Uniswap V4 swap via Trading API + on-chain quoter fallback.
3
+ *
4
+ * Two swap paths:
5
+ * 1. Uniswap Trading API (if UNISWAP_API_KEY is set) — hosted aggregation, best prices
6
+ * 2. On-chain V4 Quoter simulation — works without API key, direct V4 pool
7
+ *
8
+ * Supports all 15 Uniswap chains, but defaults to Base (8453).
9
+ *
10
+ * Actions:
11
+ * - swap: Execute a swap via Trading API
12
+ * - quote: Get a quote (price + impact) without executing
13
+ * - deeplink: Generate a Uniswap app deep link for the swap
14
+ */
15
+ import { UniswapTradingApi, UniswapQuoter, ClawnchSwapper, getUniswapChain, NATIVE_TOKEN_ADDRESS, } from '@clawnch/clawncher-sdk';
16
+ import { parseEther, formatEther } from 'viem';
17
+ export const uniswapSwapSkill = {
18
+ name: 'uniswap_swap',
19
+ description: 'Swap tokens via Uniswap V4 (Trading API or direct V4 pool). ' +
20
+ 'Supports quote-only, execute, and deep link generation. ' +
21
+ 'Works on all Uniswap-supported chains.',
22
+ parameters: [
23
+ {
24
+ name: 'action',
25
+ type: 'string',
26
+ description: 'Action: "swap" (execute), "quote" (price check), or "deeplink" (generate link).',
27
+ required: true,
28
+ },
29
+ {
30
+ name: 'tokenIn',
31
+ type: 'address',
32
+ description: 'Token to sell. Use "ETH" for native ETH.',
33
+ required: true,
34
+ },
35
+ {
36
+ name: 'tokenOut',
37
+ type: 'address',
38
+ description: 'Token to buy.',
39
+ required: true,
40
+ },
41
+ {
42
+ name: 'amount',
43
+ type: 'string',
44
+ description: 'Amount to sell in human-readable units (e.g. "0.01" for 0.01 ETH).',
45
+ required: true,
46
+ },
47
+ {
48
+ name: 'slippageBps',
49
+ type: 'number',
50
+ description: 'Slippage tolerance in basis points. Default: 50 (0.5%).',
51
+ required: false,
52
+ default: 50,
53
+ },
54
+ {
55
+ name: 'chainId',
56
+ type: 'number',
57
+ description: 'Chain ID to trade on. Default: 8453 (Base).',
58
+ required: false,
59
+ default: 8453,
60
+ },
61
+ ],
62
+ execute: async (params, ctx) => {
63
+ const action = params.action.toLowerCase();
64
+ try {
65
+ const { buildClients } = await import('../identity/index.js');
66
+ const rpcUrl = process.env.BASE_RPC_URL ?? 'https://mainnet.base.org';
67
+ const { publicClient, walletClient } = buildClients(ctx.identity, rpcUrl);
68
+ const chainId = params.chainId ?? 8453;
69
+ const apiKey = process.env.UNISWAP_API_KEY;
70
+ // Resolve token addresses
71
+ const resolveToken = (input) => {
72
+ if (input.toUpperCase() === 'ETH' || input === '0x0000000000000000000000000000000000000000') {
73
+ return NATIVE_TOKEN_ADDRESS;
74
+ }
75
+ return input;
76
+ };
77
+ const tokenIn = resolveToken(params.tokenIn);
78
+ const tokenOut = resolveToken(params.tokenOut);
79
+ const amountStr = params.amount;
80
+ const slippageBps = params.slippageBps ?? 50;
81
+ // Parse amount (assume 18 decimals for now — ETH/token)
82
+ const sellAmount = parseEther(amountStr);
83
+ if (action === 'deeplink') {
84
+ // Generate Uniswap app deep link — no wallet needed
85
+ const trading = new UniswapTradingApi({
86
+ wallet: walletClient,
87
+ publicClient: publicClient,
88
+ chainId,
89
+ apiKey,
90
+ slippageBps,
91
+ });
92
+ const link = trading.getSwapDeepLink({
93
+ tokenIn,
94
+ tokenOut,
95
+ amount: sellAmount,
96
+ });
97
+ return {
98
+ callId: '',
99
+ success: true,
100
+ result: `Uniswap deep link:\n${link}`,
101
+ metadata: { deeplink: link },
102
+ };
103
+ }
104
+ if (action === 'quote') {
105
+ // Try Trading API first, fall back to on-chain quoter
106
+ if (apiKey) {
107
+ const trading = new UniswapTradingApi({
108
+ wallet: walletClient,
109
+ publicClient: publicClient,
110
+ chainId,
111
+ apiKey,
112
+ slippageBps,
113
+ });
114
+ const quote = await trading.getQuote({
115
+ tokenIn,
116
+ tokenOut,
117
+ amount: sellAmount,
118
+ });
119
+ const lines = [
120
+ `Uniswap V4 Quote (Trading API):`,
121
+ `Quoted output: ${formatEther(quote.quoteAmount)}`,
122
+ `Price impact: ${(quote.priceImpact * 100).toFixed(3)}%`,
123
+ `Route: ${quote.routeDescription}`,
124
+ `Gas estimate: ${quote.gasEstimate.toString()}`,
125
+ ];
126
+ return {
127
+ callId: '',
128
+ success: true,
129
+ result: lines.join('\n'),
130
+ metadata: {
131
+ quoteAmount: quote.quoteAmount.toString(),
132
+ priceImpact: quote.priceImpact,
133
+ route: quote.routeDescription,
134
+ },
135
+ };
136
+ }
137
+ // Fallback: on-chain V4 Quoter with Clawnch-aware pool discovery
138
+ const quoter = new UniswapQuoter({
139
+ publicClient: publicClient,
140
+ chainId,
141
+ });
142
+ const chain = getUniswapChain(chainId);
143
+ if (!chain) {
144
+ return { callId: '', success: false, result: null, error: `Chain ${chainId} not supported` };
145
+ }
146
+ // Determine the non-ETH token and direction
147
+ const targetToken = (tokenOut === NATIVE_TOKEN_ADDRESS
148
+ ? tokenIn : tokenOut);
149
+ const direction = (tokenIn === NATIVE_TOKEN_ADDRESS ||
150
+ params.tokenIn.toUpperCase() === 'ETH')
151
+ ? 'buy' : 'sell';
152
+ // Auto-discovers hook address for Clawnch tokens (reads LP locker)
153
+ const quote = await quoter.quoteClawnchToken(targetToken, sellAmount, direction);
154
+ // Also try 0x quote for comparison if available
155
+ let comparison = '';
156
+ try {
157
+ const swapper = new ClawnchSwapper({
158
+ wallet: walletClient,
159
+ publicClient: publicClient,
160
+ network: 'mainnet',
161
+ });
162
+ const zxPrice = await swapper.getPrice({
163
+ sellToken: tokenIn,
164
+ buyToken: tokenOut,
165
+ sellAmount,
166
+ slippageBps: slippageBps,
167
+ });
168
+ const zxOutput = formatEther(zxPrice.buyAmount);
169
+ const v4Output = formatEther(quote.quotedAmount);
170
+ const diff = ((Number(v4Output) - Number(zxOutput)) / Number(zxOutput) * 100);
171
+ comparison = `\n0x quote: ${zxOutput} (${diff > 0 ? '+' : ''}${diff.toFixed(2)}% vs V4)`;
172
+ }
173
+ catch {
174
+ // 0x comparison is best-effort
175
+ }
176
+ const lines = [
177
+ `Uniswap V4 Quote (on-chain, Clawnch-aware):`,
178
+ `Quoted output: ${formatEther(quote.quotedAmount)}`,
179
+ `Price impact: ${quote.priceImpact !== null ? `${(quote.priceImpact * 100).toFixed(3)}%` : 'unknown'}`,
180
+ `Gas estimate: ${quote.gasEstimate.toString()}`,
181
+ `Hook: ${quote.poolKey.hooks}`,
182
+ comparison,
183
+ ].filter(Boolean);
184
+ return {
185
+ callId: '',
186
+ success: true,
187
+ result: lines.join('\n'),
188
+ metadata: {
189
+ quoteAmount: quote.quotedAmount.toString(),
190
+ priceImpact: quote.priceImpact,
191
+ hookAddress: quote.poolKey.hooks,
192
+ isClawnchToken: quote.poolKey.hooks !== '0x0000000000000000000000000000000000000000',
193
+ },
194
+ };
195
+ }
196
+ if (action === 'swap') {
197
+ if (!apiKey) {
198
+ return {
199
+ callId: '',
200
+ success: false,
201
+ result: null,
202
+ error: 'UNISWAP_API_KEY required for swap execution via Trading API. ' +
203
+ 'Use action="quote" for on-chain price checks, or set the env var.',
204
+ };
205
+ }
206
+ const trading = new UniswapTradingApi({
207
+ wallet: walletClient,
208
+ publicClient: publicClient,
209
+ chainId,
210
+ apiKey,
211
+ slippageBps,
212
+ });
213
+ const result = await trading.swap({
214
+ tokenIn,
215
+ tokenOut,
216
+ amount: sellAmount,
217
+ });
218
+ const chain = getUniswapChain(chainId);
219
+ const lines = [
220
+ `Uniswap V4 swap complete!`,
221
+ `Sold: ${amountStr}`,
222
+ `Received: ${formatEther(result.quoteAmount)} (quoted)`,
223
+ `TX: ${result.txHash}`,
224
+ `Gas used: ${result.gasUsed.toString()}`,
225
+ `Explorer: ${chain?.explorer}/tx/${result.txHash}`,
226
+ ];
227
+ // Structured metadata for trade recording in handleSkillSideEffects
228
+ const isETHSell = tokenIn === NATIVE_TOKEN_ADDRESS || params.tokenIn.toUpperCase() === 'ETH';
229
+ const isETHBuy = tokenOut === NATIVE_TOKEN_ADDRESS || params.tokenOut.toUpperCase() === 'ETH';
230
+ return {
231
+ callId: '',
232
+ success: true,
233
+ result: lines.join('\n'),
234
+ metadata: {
235
+ txHash: result.txHash,
236
+ quoteAmount: result.quoteAmount.toString(),
237
+ gasUsed: result.gasUsed.toString(),
238
+ // Trade recording fields (consumed by agent heartbeat)
239
+ trade: {
240
+ sellToken: params.tokenIn,
241
+ buyToken: params.tokenOut,
242
+ sellAmount: amountStr,
243
+ buyAmount: formatEther(result.quoteAmount),
244
+ isETHSell,
245
+ isETHBuy,
246
+ source: 'uniswap_v4',
247
+ },
248
+ },
249
+ };
250
+ }
251
+ return {
252
+ callId: '',
253
+ success: false,
254
+ result: null,
255
+ error: `Unknown action "${action}". Use "swap", "quote", or "deeplink".`,
256
+ };
257
+ }
258
+ catch (err) {
259
+ return {
260
+ callId: '',
261
+ success: false,
262
+ result: null,
263
+ error: err instanceof Error ? err.message : String(err),
264
+ };
265
+ }
266
+ },
267
+ };
268
+ //# sourceMappingURL=uniswap-swap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uniswap-swap.js","sourceRoot":"","sources":["../../src/skills/uniswap-swap.ts"],"names":[],"mappings":"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"}
@@ -1,17 +1,23 @@
1
1
  /**
2
- * XMTP skill — encrypted messaging via the XMTP protocol.
2
+ * XMTP skill — encrypted messaging and payments via the XMTP protocol.
3
3
  *
4
- * Actions:
5
- * - send_message: Send a text message to a conversation by ID
6
- * - send_dm: Send a DM to an Ethereum address (creates convo if needed)
7
- * - read_messages: Read recent messages from a conversation
8
- * - list_convos: List recent conversations with previews
9
- * - check_inbox: Check for unread messages in the queue
10
- * - reply: Reply to the most recent message in a conversation
4
+ * Messaging actions:
5
+ * - send_message: Send a text message to a conversation by ID
6
+ * - send_dm: Send a DM to an Ethereum address (creates convo if needed)
7
+ * - read_messages: Read recent messages from a conversation
8
+ * - list_convos: List recent conversations with previews
9
+ * - check_inbox: Check for unread messages in the queue
10
+ * - reply: Reply to the most recent message in a conversation
11
+ *
12
+ * Payment actions:
13
+ * - request_eth: Request an ETH payment from user via wallet_sendCalls
14
+ * - request_token: Request an ERC-20 token payment via wallet_sendCalls
15
+ * - share_tx: Share a confirmed transaction hash in a conversation
16
+ * - check_token_balance: Check an ERC-20 token balance for an address
11
17
  *
12
18
  * The XMTP client is managed by the agent runtime (started at boot,
13
19
  * available via `ctx.xmtpClient`). This skill is the agent's interface
14
- * to send/read messages.
20
+ * to send/read messages and handle payments.
15
21
  */
16
22
  import type { SkillDefinition } from '../types.js';
17
23
  export declare const xmtpSkill: SkillDefinition;
@@ -1 +1 @@
1
- {"version":3,"file":"xmtp.d.ts","sourceRoot":"","sources":["../../src/skills/xmtp.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,eAAe,EAA4B,MAAM,aAAa,CAAC;AAO7E,eAAO,MAAM,SAAS,EAAE,eA+KvB,CAAC"}
1
+ {"version":3,"file":"xmtp.d.ts","sourceRoot":"","sources":["../../src/skills/xmtp.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,eAAe,EAA4B,MAAM,aAAa,CAAC;AAO7E,eAAO,MAAM,SAAS,EAAE,eAoRvB,CAAC"}
@@ -1,41 +1,47 @@
1
1
  /**
2
- * XMTP skill — encrypted messaging via the XMTP protocol.
2
+ * XMTP skill — encrypted messaging and payments via the XMTP protocol.
3
3
  *
4
- * Actions:
5
- * - send_message: Send a text message to a conversation by ID
6
- * - send_dm: Send a DM to an Ethereum address (creates convo if needed)
7
- * - read_messages: Read recent messages from a conversation
8
- * - list_convos: List recent conversations with previews
9
- * - check_inbox: Check for unread messages in the queue
10
- * - reply: Reply to the most recent message in a conversation
4
+ * Messaging actions:
5
+ * - send_message: Send a text message to a conversation by ID
6
+ * - send_dm: Send a DM to an Ethereum address (creates convo if needed)
7
+ * - read_messages: Read recent messages from a conversation
8
+ * - list_convos: List recent conversations with previews
9
+ * - check_inbox: Check for unread messages in the queue
10
+ * - reply: Reply to the most recent message in a conversation
11
+ *
12
+ * Payment actions:
13
+ * - request_eth: Request an ETH payment from user via wallet_sendCalls
14
+ * - request_token: Request an ERC-20 token payment via wallet_sendCalls
15
+ * - share_tx: Share a confirmed transaction hash in a conversation
16
+ * - check_token_balance: Check an ERC-20 token balance for an address
11
17
  *
12
18
  * The XMTP client is managed by the agent runtime (started at boot,
13
19
  * available via `ctx.xmtpClient`). This skill is the agent's interface
14
- * to send/read messages.
20
+ * to send/read messages and handle payments.
15
21
  */
16
22
  // ============================================================================
17
23
  // Skill Definition
18
24
  // ============================================================================
19
25
  export const xmtpSkill = {
20
26
  name: 'xmtp',
21
- description: 'Send and receive encrypted messages via XMTP. Discoverable on Base App, World App, and xmtp.chat. Actions: send_message, send_dm, read_messages, list_convos, check_inbox, reply.',
27
+ description: 'Encrypted messaging and payments via XMTP. Discoverable on Base App, World App, and xmtp.chat. Messaging: send_message, send_dm, read_messages, list_convos, check_inbox, reply. Payments: request_eth, request_token, share_tx, check_token_balance.',
22
28
  parameters: [
23
29
  {
24
30
  name: 'action',
25
31
  type: 'string',
26
- description: 'Action: send_message | send_dm | read_messages | list_convos | check_inbox | reply',
32
+ description: 'Action: send_message | send_dm | read_messages | list_convos | check_inbox | reply | request_eth | request_token | share_tx | check_token_balance',
27
33
  required: true,
28
34
  },
29
35
  {
30
36
  name: 'conversationId',
31
37
  type: 'string',
32
- description: 'Conversation ID (for send_message, read_messages, reply)',
38
+ description: 'Conversation ID (for send_message, read_messages, reply, request_eth, request_token, share_tx)',
33
39
  required: false,
34
40
  },
35
41
  {
36
42
  name: 'address',
37
43
  type: 'address',
38
- description: 'Ethereum address to DM (for send_dm)',
44
+ description: 'Ethereum address (for send_dm, check_token_balance)',
39
45
  required: false,
40
46
  },
41
47
  {
@@ -44,6 +50,30 @@ export const xmtpSkill = {
44
50
  description: 'Text message to send (for send_message, send_dm, reply)',
45
51
  required: false,
46
52
  },
53
+ {
54
+ name: 'amount',
55
+ type: 'string',
56
+ description: 'Amount in human-readable form, e.g. "0.01" for ETH or "100" for tokens (for request_eth, request_token)',
57
+ required: false,
58
+ },
59
+ {
60
+ name: 'tokenAddress',
61
+ type: 'address',
62
+ description: 'ERC-20 token contract address (for request_token, check_token_balance)',
63
+ required: false,
64
+ },
65
+ {
66
+ name: 'txHash',
67
+ type: 'string',
68
+ description: 'Transaction hash to share (for share_tx)',
69
+ required: false,
70
+ },
71
+ {
72
+ name: 'description',
73
+ type: 'string',
74
+ description: 'Human-readable description for payment request (for request_eth, request_token)',
75
+ required: false,
76
+ },
47
77
  {
48
78
  name: 'limit',
49
79
  type: 'number',
@@ -162,12 +192,84 @@ export const xmtpSkill = {
162
192
  result: `Reply sent to conversation ${conversationId}`,
163
193
  };
164
194
  }
195
+ // =================================================================
196
+ // Payment actions
197
+ // =================================================================
198
+ case 'request_eth': {
199
+ const conversationId = params.conversationId;
200
+ const amountStr = params.amount;
201
+ const description = params.description ?? 'ETH payment request';
202
+ if (!conversationId || !amountStr) {
203
+ return { callId, success: false, result: null, error: 'request_eth requires conversationId and amount (in ETH, e.g. "0.01")' };
204
+ }
205
+ const amountWei = BigInt(Math.round(parseFloat(amountStr) * 1e18));
206
+ if (amountWei <= 0n) {
207
+ return { callId, success: false, result: null, error: 'amount must be positive' };
208
+ }
209
+ await xmtpClient.requestEthPayment(conversationId, amountWei, description);
210
+ return {
211
+ callId,
212
+ success: true,
213
+ result: `ETH payment request sent: ${amountStr} ETH. The user's wallet will prompt them to approve.`,
214
+ metadata: { conversationId, amount: amountStr, currency: 'ETH' },
215
+ };
216
+ }
217
+ case 'request_token': {
218
+ const conversationId = params.conversationId;
219
+ const amountStr = params.amount;
220
+ const tokenAddress = params.tokenAddress;
221
+ const description = params.description ?? 'Token payment request';
222
+ if (!conversationId || !amountStr || !tokenAddress) {
223
+ return { callId, success: false, result: null, error: 'request_token requires conversationId, amount, and tokenAddress' };
224
+ }
225
+ // Get token decimals to convert human-readable amount to raw
226
+ const { decimals } = await xmtpClient.getTokenBalance(tokenAddress, xmtpClient.getAddress());
227
+ const rawAmount = BigInt(Math.round(parseFloat(amountStr) * (10 ** decimals)));
228
+ if (rawAmount <= 0n) {
229
+ return { callId, success: false, result: null, error: 'amount must be positive' };
230
+ }
231
+ await xmtpClient.requestTokenPayment(conversationId, tokenAddress, rawAmount, description);
232
+ return {
233
+ callId,
234
+ success: true,
235
+ result: `Token payment request sent: ${amountStr} of ${tokenAddress} (${decimals} decimals). User's wallet will prompt approval.`,
236
+ metadata: { conversationId, amount: amountStr, tokenAddress },
237
+ };
238
+ }
239
+ case 'share_tx': {
240
+ const conversationId = params.conversationId;
241
+ const txHash = params.txHash;
242
+ if (!conversationId || !txHash) {
243
+ return { callId, success: false, result: null, error: 'share_tx requires conversationId and txHash' };
244
+ }
245
+ await xmtpClient.sendTransactionReference(conversationId, txHash);
246
+ return {
247
+ callId,
248
+ success: true,
249
+ result: `Transaction reference shared: ${txHash}`,
250
+ };
251
+ }
252
+ case 'check_token_balance': {
253
+ const tokenAddress = params.tokenAddress;
254
+ const address = params.address;
255
+ if (!tokenAddress || !address) {
256
+ return { callId, success: false, result: null, error: 'check_token_balance requires tokenAddress and address' };
257
+ }
258
+ const { balance, decimals } = await xmtpClient.getTokenBalance(tokenAddress, address);
259
+ const formatted = Number(balance) / (10 ** decimals);
260
+ return {
261
+ callId,
262
+ success: true,
263
+ result: `Balance: ${formatted} (raw: ${balance.toString()}, decimals: ${decimals})`,
264
+ metadata: { tokenAddress, address, balance: balance.toString(), decimals },
265
+ };
266
+ }
165
267
  default:
166
268
  return {
167
269
  callId,
168
270
  success: false,
169
271
  result: null,
170
- error: `Unknown action: ${action}. Available: send_message, send_dm, read_messages, list_convos, check_inbox, reply`,
272
+ error: `Unknown action: ${action}. Messaging: send_message, send_dm, read_messages, list_convos, check_inbox, reply. Payments: request_eth, request_token, share_tx, check_token_balance`,
171
273
  };
172
274
  }
173
275
  }
@@ -1 +1 @@
1
- {"version":3,"file":"xmtp.js","sourceRoot":"","sources":["../../src/skills/xmtp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"xmtp.js","sourceRoot":"","sources":["../../src/skills/xmtp.ts"],"names":[],"mappings":"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"}
@@ -63,6 +63,54 @@ export declare class XmtpClient {
63
63
  * Get recent messages from a specific conversation.
64
64
  */
65
65
  getConversationHistory(conversationId: string, limit?: number): Promise<XmtpMessage[]>;
66
+ /**
67
+ * Request an ETH payment from a user via wallet_sendCalls.
68
+ * The user's wallet app prompts them to approve the transfer.
69
+ *
70
+ * @param conversationId - The conversation to send the request in
71
+ * @param amount - Amount in wei (bigint)
72
+ * @param description - Human-readable description shown in the wallet prompt
73
+ * @param chainId - Chain ID (default: 8453 for Base)
74
+ */
75
+ requestEthPayment(conversationId: string, amount: bigint, description: string, chainId?: number): Promise<void>;
76
+ /**
77
+ * Request an ERC-20 token payment from a user via wallet_sendCalls.
78
+ *
79
+ * @param conversationId - The conversation to send the request in
80
+ * @param tokenAddress - ERC-20 contract address
81
+ * @param amount - Raw token amount (bigint, accounting for decimals)
82
+ * @param description - Human-readable description
83
+ * @param chainId - Chain ID (default: 8453 for Base)
84
+ */
85
+ requestTokenPayment(conversationId: string, tokenAddress: string, amount: bigint, description: string, chainId?: number): Promise<void>;
86
+ /**
87
+ * Send a transaction reference (share a confirmed tx hash in a conversation).
88
+ *
89
+ * @param conversationId - The conversation to share in
90
+ * @param txHash - The transaction hash
91
+ * @param chainId - Chain ID (default: 8453 for Base)
92
+ * @param metadata - Optional metadata (currency, amount, addresses)
93
+ */
94
+ sendTransactionReference(conversationId: string, txHash: string, chainId?: number, metadata?: {
95
+ transactionType?: string;
96
+ currency?: string;
97
+ amount?: number;
98
+ decimals?: number;
99
+ fromAddress?: string;
100
+ toAddress?: string;
101
+ }): Promise<void>;
102
+ /**
103
+ * Check an ERC-20 token balance for an address.
104
+ *
105
+ * @param tokenAddress - ERC-20 contract address
106
+ * @param walletAddress - The address to check
107
+ * @param chainId - Chain ID (default: 8453 for Base)
108
+ * @returns Raw balance (bigint) and decimals
109
+ */
110
+ getTokenBalance(tokenAddress: string, walletAddress: string, chainId?: number): Promise<{
111
+ balance: bigint;
112
+ decimals: number;
113
+ }>;
66
114
  /**
67
115
  * Get the XMTP address (same as wallet address).
68
116
  */
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/xmtp/client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAChF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAqBpD,qBAAa,UAAU;IACrB,OAAO,CAAC,KAAK,CAAa;IAC1B,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,KAAK,CAAa;IAC1B,OAAO,CAAC,SAAS,CAAgB;IACjC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,YAAY,CAAO;IAC3B,OAAO,CAAC,iBAAiB,CAAK;gBAElB,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,MAAM,EAAE,EAAE,KAAK,EAAE,UAAU;IAM3E;;;OAGG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAoE5B;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAa3B;;;OAGG;IACH,iBAAiB,IAAI,OAAO;IAI5B;;;OAGG;IACH,aAAa,IAAI,WAAW,EAAE;IAO9B;;OAEG;IACH,YAAY,IAAI,WAAW,EAAE;IAI7B;;OAEG;IACG,WAAW,CAAC,cAAc,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IActE;;;OAGG;IACG,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAanE;;OAEG;IACG,iBAAiB,CAAC,KAAK,GAAE,MAAW,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;IA2C5E;;OAEG;IACG,sBAAsB,CAAC,cAAc,EAAE,MAAM,EAAE,KAAK,GAAE,MAAW,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAoChG;;OAEG;IACH,UAAU,IAAI,MAAM,GAAG,IAAI;IAI3B;;OAEG;IACH,SAAS,IAAI,OAAO;IAIpB;;OAEG;IACH,YAAY,IAAI,MAAM;CAGvB"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/xmtp/client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAChF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AA6BpD,qBAAa,UAAU;IACrB,OAAO,CAAC,KAAK,CAAa;IAC1B,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,KAAK,CAAa;IAC1B,OAAO,CAAC,SAAS,CAAgB;IACjC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,YAAY,CAAO;IAC3B,OAAO,CAAC,iBAAiB,CAAK;gBAElB,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,MAAM,EAAE,EAAE,KAAK,EAAE,UAAU;IAM3E;;;OAGG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA+G5B;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAa3B;;;OAGG;IACH,iBAAiB,IAAI,OAAO;IAI5B;;;OAGG;IACH,aAAa,IAAI,WAAW,EAAE;IAO9B;;OAEG;IACH,YAAY,IAAI,WAAW,EAAE;IAI7B;;OAEG;IACG,WAAW,CAAC,cAAc,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IActE;;;OAGG;IACG,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAanE;;OAEG;IACG,iBAAiB,CAAC,KAAK,GAAE,MAAW,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;IA2C5E;;OAEG;IACG,sBAAsB,CAAC,cAAc,EAAE,MAAM,EAAE,KAAK,GAAE,MAAW,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAwChG;;;;;;;;OAQG;IACG,iBAAiB,CACrB,cAAc,EAAE,MAAM,EACtB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,MAAa,GACrB,OAAO,CAAC,IAAI,CAAC;IAiChB;;;;;;;;OAQG;IACG,mBAAmB,CACvB,cAAc,EAAE,MAAM,EACtB,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,MAAa,GACrB,OAAO,CAAC,IAAI,CAAC;IA+BhB;;;;;;;OAOG;IACG,wBAAwB,CAC5B,cAAc,EAAE,MAAM,EACtB,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,MAAa,EACtB,QAAQ,CAAC,EAAE;QACT,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,GACA,OAAO,CAAC,IAAI,CAAC;IAiBhB;;;;;;;OAOG;IACG,eAAe,CACnB,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,MAAM,EACrB,OAAO,GAAE,MAAa,GACrB,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAmBjD;;OAEG;IACH,UAAU,IAAI,MAAM,GAAG,IAAI;IAI3B;;OAEG;IACH,SAAS,IAAI,OAAO;IAIpB;;OAEG;IACH,YAAY,IAAI,MAAM;CAGvB"}