pay-lobster 1.0.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.
- package/README.md +401 -0
- package/README.md.bak +401 -0
- package/dist/agent.d.ts +132 -0
- package/dist/agent.d.ts.map +1 -0
- package/dist/agent.js +224 -0
- package/dist/agent.js.map +1 -0
- package/dist/analytics.d.ts +120 -0
- package/dist/analytics.d.ts.map +1 -0
- package/dist/analytics.js +345 -0
- package/dist/analytics.js.map +1 -0
- package/dist/approvals.d.ts +168 -0
- package/dist/approvals.d.ts.map +1 -0
- package/dist/approvals.js +406 -0
- package/dist/approvals.js.map +1 -0
- package/dist/circle-client.d.ts +152 -0
- package/dist/circle-client.d.ts.map +1 -0
- package/dist/circle-client.js +266 -0
- package/dist/circle-client.js.map +1 -0
- package/dist/commission.d.ts +191 -0
- package/dist/commission.d.ts.map +1 -0
- package/dist/commission.js +475 -0
- package/dist/commission.js.map +1 -0
- package/dist/condition-builder.d.ts +98 -0
- package/dist/condition-builder.d.ts.map +1 -0
- package/dist/condition-builder.js +193 -0
- package/dist/condition-builder.js.map +1 -0
- package/dist/contacts.d.ts +179 -0
- package/dist/contacts.d.ts.map +1 -0
- package/dist/contacts.js +445 -0
- package/dist/contacts.js.map +1 -0
- package/dist/easy.d.ts +22 -0
- package/dist/easy.d.ts.map +1 -0
- package/dist/easy.js +40 -0
- package/dist/easy.js.map +1 -0
- package/dist/erc8004/constants.d.ts +152 -0
- package/dist/erc8004/constants.d.ts.map +1 -0
- package/dist/erc8004/constants.js +114 -0
- package/dist/erc8004/constants.js.map +1 -0
- package/dist/erc8004/discovery.d.ts +84 -0
- package/dist/erc8004/discovery.d.ts.map +1 -0
- package/dist/erc8004/discovery.js +217 -0
- package/dist/erc8004/discovery.js.map +1 -0
- package/dist/erc8004/identity.d.ts +91 -0
- package/dist/erc8004/identity.d.ts.map +1 -0
- package/dist/erc8004/identity.js +250 -0
- package/dist/erc8004/identity.js.map +1 -0
- package/dist/erc8004/index.d.ts +147 -0
- package/dist/erc8004/index.d.ts.map +1 -0
- package/dist/erc8004/index.js +225 -0
- package/dist/erc8004/index.js.map +1 -0
- package/dist/erc8004/reputation.d.ts +133 -0
- package/dist/erc8004/reputation.d.ts.map +1 -0
- package/dist/erc8004/reputation.js +277 -0
- package/dist/erc8004/reputation.js.map +1 -0
- package/dist/escrow-templates.d.ts +38 -0
- package/dist/escrow-templates.d.ts.map +1 -0
- package/dist/escrow-templates.js +419 -0
- package/dist/escrow-templates.js.map +1 -0
- package/dist/escrow.d.ts +320 -0
- package/dist/escrow.d.ts.map +1 -0
- package/dist/escrow.js +854 -0
- package/dist/escrow.js.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +33 -0
- package/dist/index.js.map +1 -0
- package/dist/invoices.d.ts +212 -0
- package/dist/invoices.d.ts.map +1 -0
- package/dist/invoices.js +393 -0
- package/dist/invoices.js.map +1 -0
- package/dist/notifications.d.ts +141 -0
- package/dist/notifications.d.ts.map +1 -0
- package/dist/notifications.js +350 -0
- package/dist/notifications.js.map +1 -0
- package/dist/tips.d.ts +171 -0
- package/dist/tips.d.ts.map +1 -0
- package/dist/tips.js +390 -0
- package/dist/tips.js.map +1 -0
- package/dist/types.d.ts +100 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +6 -0
- package/dist/types.js.map +1 -0
- package/dist/x402-client.d.ts +127 -0
- package/dist/x402-client.d.ts.map +1 -0
- package/dist/x402-client.js +350 -0
- package/dist/x402-client.js.map +1 -0
- package/dist/x402-server.d.ts +133 -0
- package/dist/x402-server.d.ts.map +1 -0
- package/dist/x402-server.js +330 -0
- package/dist/x402-server.js.map +1 -0
- package/lib/agent.ts +273 -0
- package/lib/analytics.ts +474 -0
- package/lib/analytics.ts.bak +474 -0
- package/lib/approvals.ts +585 -0
- package/lib/approvals.ts.bak +585 -0
- package/lib/circle-client.ts +376 -0
- package/lib/circle-client.ts.bak +376 -0
- package/lib/commission.ts +680 -0
- package/lib/commission.ts.bak +680 -0
- package/lib/condition-builder.ts +223 -0
- package/lib/condition-builder.ts.bak +223 -0
- package/lib/contacts.ts +615 -0
- package/lib/contacts.ts.bak +615 -0
- package/lib/easy.ts +46 -0
- package/lib/easy.ts.bak +352 -0
- package/lib/erc8004/constants.ts +175 -0
- package/lib/erc8004/discovery.ts +299 -0
- package/lib/erc8004/identity.ts +327 -0
- package/lib/erc8004/index.ts +285 -0
- package/lib/erc8004/reputation.ts +368 -0
- package/lib/escrow-templates.ts +462 -0
- package/lib/escrow.ts +1216 -0
- package/lib/index.ts +13 -0
- package/lib/invoices.ts +588 -0
- package/lib/notifications.ts +484 -0
- package/lib/tips.ts +570 -0
- package/lib/types.ts +108 -0
- package/lib/x402-client.ts +471 -0
- package/lib/x402-server.ts +462 -0
- package/package.json +58 -0
|
@@ -0,0 +1,350 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Payment Notifications & Webhooks
|
|
4
|
+
*
|
|
5
|
+
* Real-time notifications for USDC transactions and events.
|
|
6
|
+
*/
|
|
7
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
8
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
9
|
+
};
|
|
10
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
+
exports.NotificationManager = void 0;
|
|
12
|
+
const crypto_1 = __importDefault(require("crypto"));
|
|
13
|
+
const promises_1 = __importDefault(require("fs/promises"));
|
|
14
|
+
const path_1 = __importDefault(require("path"));
|
|
15
|
+
const DATA_DIR = process.env.USDC_DATA_DIR || './data';
|
|
16
|
+
/**
|
|
17
|
+
* Notification Manager
|
|
18
|
+
*/
|
|
19
|
+
class NotificationManager {
|
|
20
|
+
constructor(dataDir = DATA_DIR) {
|
|
21
|
+
this.configPath = path_1.default.join(dataDir, 'notification-configs.json');
|
|
22
|
+
this.historyPath = path_1.default.join(dataDir, 'notification-history.json');
|
|
23
|
+
}
|
|
24
|
+
async loadConfigs() {
|
|
25
|
+
try {
|
|
26
|
+
const data = await promises_1.default.readFile(this.configPath, 'utf-8');
|
|
27
|
+
return JSON.parse(data);
|
|
28
|
+
}
|
|
29
|
+
catch {
|
|
30
|
+
return [];
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
async saveConfigs(configs) {
|
|
34
|
+
await promises_1.default.mkdir(path_1.default.dirname(this.configPath), { recursive: true });
|
|
35
|
+
await promises_1.default.writeFile(this.configPath, JSON.stringify(configs, null, 2));
|
|
36
|
+
}
|
|
37
|
+
async loadHistory() {
|
|
38
|
+
try {
|
|
39
|
+
const data = await promises_1.default.readFile(this.historyPath, 'utf-8');
|
|
40
|
+
return JSON.parse(data);
|
|
41
|
+
}
|
|
42
|
+
catch {
|
|
43
|
+
return [];
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
async saveHistory(history) {
|
|
47
|
+
await promises_1.default.mkdir(path_1.default.dirname(this.historyPath), { recursive: true });
|
|
48
|
+
// Keep last 1000 notifications
|
|
49
|
+
const trimmed = history.slice(-1000);
|
|
50
|
+
await promises_1.default.writeFile(this.historyPath, JSON.stringify(trimmed, null, 2));
|
|
51
|
+
}
|
|
52
|
+
// ============ Configuration Management ============
|
|
53
|
+
/**
|
|
54
|
+
* Create notification configuration
|
|
55
|
+
*/
|
|
56
|
+
async createConfig(params) {
|
|
57
|
+
const configs = await this.loadConfigs();
|
|
58
|
+
const config = {
|
|
59
|
+
id: crypto_1.default.randomUUID(),
|
|
60
|
+
name: params.name,
|
|
61
|
+
enabled: true,
|
|
62
|
+
triggers: params.triggers,
|
|
63
|
+
channels: params.channels,
|
|
64
|
+
cooldownMs: params.cooldownMs,
|
|
65
|
+
createdAt: new Date().toISOString(),
|
|
66
|
+
updatedAt: new Date().toISOString(),
|
|
67
|
+
};
|
|
68
|
+
configs.push(config);
|
|
69
|
+
await this.saveConfigs(configs);
|
|
70
|
+
return config;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Enable/disable notification config
|
|
74
|
+
*/
|
|
75
|
+
async toggleConfig(id, enabled) {
|
|
76
|
+
const configs = await this.loadConfigs();
|
|
77
|
+
const config = configs.find(c => c.id === id);
|
|
78
|
+
if (config) {
|
|
79
|
+
config.enabled = enabled;
|
|
80
|
+
config.updatedAt = new Date().toISOString();
|
|
81
|
+
await this.saveConfigs(configs);
|
|
82
|
+
}
|
|
83
|
+
return config || null;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* List notification configs
|
|
87
|
+
*/
|
|
88
|
+
async listConfigs() {
|
|
89
|
+
return this.loadConfigs();
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Delete notification config
|
|
93
|
+
*/
|
|
94
|
+
async deleteConfig(id) {
|
|
95
|
+
const configs = await this.loadConfigs();
|
|
96
|
+
const index = configs.findIndex(c => c.id === id);
|
|
97
|
+
if (index >= 0) {
|
|
98
|
+
configs.splice(index, 1);
|
|
99
|
+
await this.saveConfigs(configs);
|
|
100
|
+
return true;
|
|
101
|
+
}
|
|
102
|
+
return false;
|
|
103
|
+
}
|
|
104
|
+
// ============ Notification Triggering ============
|
|
105
|
+
/**
|
|
106
|
+
* Process a transaction and trigger matching notifications
|
|
107
|
+
*/
|
|
108
|
+
async processTransaction(tx) {
|
|
109
|
+
const configs = await this.loadConfigs();
|
|
110
|
+
const triggeredNotifications = [];
|
|
111
|
+
const now = new Date();
|
|
112
|
+
for (const config of configs) {
|
|
113
|
+
if (!config.enabled)
|
|
114
|
+
continue;
|
|
115
|
+
// Check cooldown
|
|
116
|
+
if (config.cooldownMs && config.lastTriggeredAt) {
|
|
117
|
+
const timeSince = now.getTime() - new Date(config.lastTriggeredAt).getTime();
|
|
118
|
+
if (timeSince < config.cooldownMs)
|
|
119
|
+
continue;
|
|
120
|
+
}
|
|
121
|
+
// Check triggers
|
|
122
|
+
const matchingTrigger = config.triggers.find(trigger => {
|
|
123
|
+
if (trigger.type !== tx.type)
|
|
124
|
+
return false;
|
|
125
|
+
if (trigger.minAmount && parseFloat(tx.amount) < parseFloat(trigger.minAmount)) {
|
|
126
|
+
return false;
|
|
127
|
+
}
|
|
128
|
+
if (trigger.addresses && trigger.addresses.length > 0) {
|
|
129
|
+
const relevantAddr = tx.type === 'incoming' ? tx.fromAddress : tx.toAddress;
|
|
130
|
+
if (!trigger.addresses.some(a => a.toLowerCase() === relevantAddr.toLowerCase())) {
|
|
131
|
+
return false;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
if (trigger.chains && trigger.chains.length > 0) {
|
|
135
|
+
if (!trigger.chains.includes(tx.chain))
|
|
136
|
+
return false;
|
|
137
|
+
}
|
|
138
|
+
return true;
|
|
139
|
+
});
|
|
140
|
+
if (!matchingTrigger)
|
|
141
|
+
continue;
|
|
142
|
+
// Create notification
|
|
143
|
+
const notification = await this.createNotification({
|
|
144
|
+
configId: config.id,
|
|
145
|
+
type: tx.type === 'incoming' ? 'payment_received' : 'payment_sent',
|
|
146
|
+
title: tx.type === 'incoming'
|
|
147
|
+
? `Received ${tx.amount} USDC`
|
|
148
|
+
: `Sent ${tx.amount} USDC`,
|
|
149
|
+
message: tx.type === 'incoming'
|
|
150
|
+
? `You received ${tx.amount} USDC from ${this.shortAddress(tx.fromAddress)} on ${tx.chain}`
|
|
151
|
+
: `You sent ${tx.amount} USDC to ${this.shortAddress(tx.toAddress)} on ${tx.chain}`,
|
|
152
|
+
data: tx,
|
|
153
|
+
channels: config.channels,
|
|
154
|
+
});
|
|
155
|
+
triggeredNotifications.push(notification);
|
|
156
|
+
// Update last triggered
|
|
157
|
+
config.lastTriggeredAt = now.toISOString();
|
|
158
|
+
}
|
|
159
|
+
await this.saveConfigs(configs);
|
|
160
|
+
return triggeredNotifications;
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Create and deliver a notification
|
|
164
|
+
*/
|
|
165
|
+
async createNotification(params) {
|
|
166
|
+
const notification = {
|
|
167
|
+
id: crypto_1.default.randomUUID(),
|
|
168
|
+
configId: params.configId,
|
|
169
|
+
type: params.type,
|
|
170
|
+
title: params.title,
|
|
171
|
+
message: params.message,
|
|
172
|
+
data: params.data,
|
|
173
|
+
deliveries: params.channels.map(ch => ({
|
|
174
|
+
channel: ch.type,
|
|
175
|
+
status: 'pending',
|
|
176
|
+
})),
|
|
177
|
+
createdAt: new Date().toISOString(),
|
|
178
|
+
};
|
|
179
|
+
// Attempt delivery to each channel
|
|
180
|
+
for (let i = 0; i < params.channels.length; i++) {
|
|
181
|
+
const channel = params.channels[i];
|
|
182
|
+
try {
|
|
183
|
+
await this.deliver(channel, notification);
|
|
184
|
+
notification.deliveries[i].status = 'sent';
|
|
185
|
+
notification.deliveries[i].sentAt = new Date().toISOString();
|
|
186
|
+
}
|
|
187
|
+
catch (err) {
|
|
188
|
+
notification.deliveries[i].status = 'failed';
|
|
189
|
+
notification.deliveries[i].error = err.message;
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
// Save to history
|
|
193
|
+
const history = await this.loadHistory();
|
|
194
|
+
history.push(notification);
|
|
195
|
+
await this.saveHistory(history);
|
|
196
|
+
return notification;
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Deliver notification to a channel
|
|
200
|
+
*/
|
|
201
|
+
async deliver(channel, notification) {
|
|
202
|
+
switch (channel.type) {
|
|
203
|
+
case 'webhook':
|
|
204
|
+
await this.deliverWebhook(channel.config, notification);
|
|
205
|
+
break;
|
|
206
|
+
case 'telegram':
|
|
207
|
+
await this.deliverTelegram(channel.config, notification);
|
|
208
|
+
break;
|
|
209
|
+
case 'clawdbot':
|
|
210
|
+
await this.deliverClawdbot(channel.config, notification);
|
|
211
|
+
break;
|
|
212
|
+
case 'email':
|
|
213
|
+
// Email delivery would require SMTP config
|
|
214
|
+
console.log('Email delivery not implemented');
|
|
215
|
+
break;
|
|
216
|
+
default:
|
|
217
|
+
throw new Error(`Unknown channel type: ${channel.type}`);
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
/**
|
|
221
|
+
* Deliver via webhook
|
|
222
|
+
*/
|
|
223
|
+
async deliverWebhook(config, notification) {
|
|
224
|
+
if (!config.url) {
|
|
225
|
+
throw new Error('Webhook URL not configured');
|
|
226
|
+
}
|
|
227
|
+
const payload = {
|
|
228
|
+
id: notification.id,
|
|
229
|
+
type: notification.type,
|
|
230
|
+
title: notification.title,
|
|
231
|
+
message: notification.message,
|
|
232
|
+
data: notification.data,
|
|
233
|
+
timestamp: notification.createdAt,
|
|
234
|
+
};
|
|
235
|
+
const headers = {
|
|
236
|
+
'Content-Type': 'application/json',
|
|
237
|
+
};
|
|
238
|
+
// Add optional secret for verification
|
|
239
|
+
if (config.secret) {
|
|
240
|
+
const signature = crypto_1.default
|
|
241
|
+
.createHmac('sha256', config.secret)
|
|
242
|
+
.update(JSON.stringify(payload))
|
|
243
|
+
.digest('hex');
|
|
244
|
+
headers['X-Signature'] = signature;
|
|
245
|
+
}
|
|
246
|
+
const response = await fetch(config.url, {
|
|
247
|
+
method: 'POST',
|
|
248
|
+
headers,
|
|
249
|
+
body: JSON.stringify(payload),
|
|
250
|
+
});
|
|
251
|
+
if (!response.ok) {
|
|
252
|
+
throw new Error(`Webhook failed: ${response.status}`);
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
/**
|
|
256
|
+
* Deliver via Telegram (would integrate with Clawdbot's messaging)
|
|
257
|
+
*/
|
|
258
|
+
async deliverTelegram(config, notification) {
|
|
259
|
+
// This would use Clawdbot's message tool
|
|
260
|
+
console.log(`[Telegram] ${notification.title}: ${notification.message}`);
|
|
261
|
+
// In practice, this would call the message API
|
|
262
|
+
}
|
|
263
|
+
/**
|
|
264
|
+
* Deliver via Clawdbot session message
|
|
265
|
+
*/
|
|
266
|
+
async deliverClawdbot(config, notification) {
|
|
267
|
+
// This would use sessions_send
|
|
268
|
+
console.log(`[Clawdbot] ${notification.title}: ${notification.message}`);
|
|
269
|
+
// In practice, this would call sessions_send
|
|
270
|
+
}
|
|
271
|
+
// ============ History & Management ============
|
|
272
|
+
/**
|
|
273
|
+
* Get notification history
|
|
274
|
+
*/
|
|
275
|
+
async getHistory(options) {
|
|
276
|
+
let history = await this.loadHistory();
|
|
277
|
+
if (options?.type) {
|
|
278
|
+
history = history.filter(n => n.type === options.type);
|
|
279
|
+
}
|
|
280
|
+
if (options?.unreadOnly) {
|
|
281
|
+
history = history.filter(n => !n.readAt);
|
|
282
|
+
}
|
|
283
|
+
history.sort((a, b) => new Date(b.createdAt).getTime() - new Date(a.createdAt).getTime());
|
|
284
|
+
if (options?.limit) {
|
|
285
|
+
history = history.slice(0, options.limit);
|
|
286
|
+
}
|
|
287
|
+
return history;
|
|
288
|
+
}
|
|
289
|
+
/**
|
|
290
|
+
* Mark notification as read
|
|
291
|
+
*/
|
|
292
|
+
async markRead(id) {
|
|
293
|
+
const history = await this.loadHistory();
|
|
294
|
+
const notification = history.find(n => n.id === id);
|
|
295
|
+
if (notification) {
|
|
296
|
+
notification.readAt = new Date().toISOString();
|
|
297
|
+
await this.saveHistory(history);
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
/**
|
|
301
|
+
* Mark all as read
|
|
302
|
+
*/
|
|
303
|
+
async markAllRead() {
|
|
304
|
+
const history = await this.loadHistory();
|
|
305
|
+
const now = new Date().toISOString();
|
|
306
|
+
for (const notification of history) {
|
|
307
|
+
if (!notification.readAt) {
|
|
308
|
+
notification.readAt = now;
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
await this.saveHistory(history);
|
|
312
|
+
}
|
|
313
|
+
/**
|
|
314
|
+
* Get unread count
|
|
315
|
+
*/
|
|
316
|
+
async getUnreadCount() {
|
|
317
|
+
const history = await this.loadHistory();
|
|
318
|
+
return history.filter(n => !n.readAt).length;
|
|
319
|
+
}
|
|
320
|
+
// ============ Helpers ============
|
|
321
|
+
/**
|
|
322
|
+
* Shorten address for display
|
|
323
|
+
*/
|
|
324
|
+
shortAddress(address) {
|
|
325
|
+
return `${address.slice(0, 6)}...${address.slice(-4)}`;
|
|
326
|
+
}
|
|
327
|
+
/**
|
|
328
|
+
* Create default notification configs for a new user
|
|
329
|
+
*/
|
|
330
|
+
async createDefaultConfigs() {
|
|
331
|
+
const configs = [];
|
|
332
|
+
// Incoming payments
|
|
333
|
+
configs.push(await this.createConfig({
|
|
334
|
+
name: 'All Incoming Payments',
|
|
335
|
+
triggers: [{ type: 'incoming' }],
|
|
336
|
+
channels: [{ type: 'clawdbot', config: {} }],
|
|
337
|
+
}));
|
|
338
|
+
// Large outgoing (security alert)
|
|
339
|
+
configs.push(await this.createConfig({
|
|
340
|
+
name: 'Large Outgoing (>1000 USDC)',
|
|
341
|
+
triggers: [{ type: 'outgoing', minAmount: '1000' }],
|
|
342
|
+
channels: [{ type: 'clawdbot', config: {} }],
|
|
343
|
+
cooldownMs: 60000, // 1 min cooldown
|
|
344
|
+
}));
|
|
345
|
+
return configs;
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
exports.NotificationManager = NotificationManager;
|
|
349
|
+
exports.default = NotificationManager;
|
|
350
|
+
//# sourceMappingURL=notifications.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notifications.js","sourceRoot":"","sources":["../lib/notifications.ts"],"names":[],"mappings":"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"}
|
package/dist/tips.d.ts
ADDED
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tip Jar / Creator Economy Module
|
|
3
|
+
*
|
|
4
|
+
* Enable Clawdbot operators and agents to receive USDC tips
|
|
5
|
+
* via simple commands. Built for the creator economy.
|
|
6
|
+
*/
|
|
7
|
+
export interface TipJar {
|
|
8
|
+
id: string;
|
|
9
|
+
name: string;
|
|
10
|
+
description?: string;
|
|
11
|
+
ownerId: string;
|
|
12
|
+
ownerName: string;
|
|
13
|
+
addresses: {
|
|
14
|
+
chain: string;
|
|
15
|
+
address: string;
|
|
16
|
+
isDefault: boolean;
|
|
17
|
+
}[];
|
|
18
|
+
settings: {
|
|
19
|
+
minTip: string;
|
|
20
|
+
suggestedAmounts: string[];
|
|
21
|
+
thankYouMessage?: string;
|
|
22
|
+
allowAnonymous: boolean;
|
|
23
|
+
notifyOnTip: boolean;
|
|
24
|
+
};
|
|
25
|
+
stats: {
|
|
26
|
+
totalReceived: string;
|
|
27
|
+
tipCount: number;
|
|
28
|
+
uniqueTippers: number;
|
|
29
|
+
largestTip: string;
|
|
30
|
+
lastTipAt?: string;
|
|
31
|
+
};
|
|
32
|
+
publicSlug?: string;
|
|
33
|
+
createdAt: string;
|
|
34
|
+
updatedAt: string;
|
|
35
|
+
}
|
|
36
|
+
export interface Tip {
|
|
37
|
+
id: string;
|
|
38
|
+
tipJarId: string;
|
|
39
|
+
fromAddress: string;
|
|
40
|
+
fromName?: string;
|
|
41
|
+
isAnonymous: boolean;
|
|
42
|
+
amount: string;
|
|
43
|
+
chain: string;
|
|
44
|
+
txHash: string;
|
|
45
|
+
message?: string;
|
|
46
|
+
status: 'pending' | 'confirmed' | 'failed';
|
|
47
|
+
confirmedAt?: string;
|
|
48
|
+
createdAt: string;
|
|
49
|
+
}
|
|
50
|
+
export interface Leaderboard {
|
|
51
|
+
tipJarId: string;
|
|
52
|
+
period: 'all-time' | 'monthly' | 'weekly';
|
|
53
|
+
entries: {
|
|
54
|
+
rank: number;
|
|
55
|
+
name: string;
|
|
56
|
+
address: string;
|
|
57
|
+
totalTipped: string;
|
|
58
|
+
tipCount: number;
|
|
59
|
+
}[];
|
|
60
|
+
generatedAt: string;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Tip Jar Manager
|
|
64
|
+
*/
|
|
65
|
+
export declare class TipJarManager {
|
|
66
|
+
private jarsPath;
|
|
67
|
+
private tipsPath;
|
|
68
|
+
constructor(dataDir?: string);
|
|
69
|
+
private loadJars;
|
|
70
|
+
private saveJars;
|
|
71
|
+
private loadTips;
|
|
72
|
+
private saveTips;
|
|
73
|
+
/**
|
|
74
|
+
* Create a new tip jar
|
|
75
|
+
*/
|
|
76
|
+
createJar(params: {
|
|
77
|
+
ownerId: string;
|
|
78
|
+
ownerName: string;
|
|
79
|
+
name?: string;
|
|
80
|
+
description?: string;
|
|
81
|
+
addresses: {
|
|
82
|
+
chain: string;
|
|
83
|
+
address: string;
|
|
84
|
+
}[];
|
|
85
|
+
publicSlug?: string;
|
|
86
|
+
settings?: Partial<TipJar['settings']>;
|
|
87
|
+
}): Promise<TipJar>;
|
|
88
|
+
/**
|
|
89
|
+
* Get tip jar by ID, slug, or owner
|
|
90
|
+
*/
|
|
91
|
+
getJar(identifier: string): Promise<TipJar | null>;
|
|
92
|
+
/**
|
|
93
|
+
* Update tip jar settings
|
|
94
|
+
*/
|
|
95
|
+
updateJar(id: string, updates: Partial<Pick<TipJar, 'name' | 'description' | 'settings' | 'publicSlug'>>): Promise<TipJar | null>;
|
|
96
|
+
/**
|
|
97
|
+
* Add address to tip jar
|
|
98
|
+
*/
|
|
99
|
+
addAddress(jarId: string, chain: string, address: string): Promise<TipJar | null>;
|
|
100
|
+
/**
|
|
101
|
+
* Set default address
|
|
102
|
+
*/
|
|
103
|
+
setDefaultAddress(jarId: string, chain: string): Promise<TipJar | null>;
|
|
104
|
+
/**
|
|
105
|
+
* Record a tip
|
|
106
|
+
*/
|
|
107
|
+
recordTip(params: {
|
|
108
|
+
tipJarId: string;
|
|
109
|
+
fromAddress: string;
|
|
110
|
+
fromName?: string;
|
|
111
|
+
isAnonymous?: boolean;
|
|
112
|
+
amount: string;
|
|
113
|
+
chain: string;
|
|
114
|
+
txHash: string;
|
|
115
|
+
message?: string;
|
|
116
|
+
}): Promise<Tip>;
|
|
117
|
+
/**
|
|
118
|
+
* Get tips for a jar
|
|
119
|
+
*/
|
|
120
|
+
getTips(jarId: string, options?: {
|
|
121
|
+
limit?: number;
|
|
122
|
+
includeAnonymous?: boolean;
|
|
123
|
+
}): Promise<Tip[]>;
|
|
124
|
+
/**
|
|
125
|
+
* Get recent tips across all jars (for activity feed)
|
|
126
|
+
*/
|
|
127
|
+
getRecentTips(limit?: number): Promise<(Tip & {
|
|
128
|
+
jarName: string;
|
|
129
|
+
})[]>;
|
|
130
|
+
/**
|
|
131
|
+
* Generate leaderboard for a tip jar
|
|
132
|
+
*/
|
|
133
|
+
getLeaderboard(jarId: string, period?: Leaderboard['period']): Promise<Leaderboard>;
|
|
134
|
+
/**
|
|
135
|
+
* Parse tip command and return tip info
|
|
136
|
+
* Supports: "tip @gustav 10", "tip 5 to gustav", etc.
|
|
137
|
+
*/
|
|
138
|
+
parseTipCommand(command: string): {
|
|
139
|
+
recipient: string;
|
|
140
|
+
amount: string;
|
|
141
|
+
message?: string;
|
|
142
|
+
} | null;
|
|
143
|
+
/**
|
|
144
|
+
* Generate tip jar card/embed for display
|
|
145
|
+
*/
|
|
146
|
+
formatTipJarCard(jar: TipJar): string;
|
|
147
|
+
/**
|
|
148
|
+
* Format tip notification
|
|
149
|
+
*/
|
|
150
|
+
formatTipNotification(tip: Tip, jar: TipJar): string;
|
|
151
|
+
private shortAddress;
|
|
152
|
+
/**
|
|
153
|
+
* Send tip from one agent to another
|
|
154
|
+
* Returns the transaction to be executed
|
|
155
|
+
*/
|
|
156
|
+
prepareAgentTip(params: {
|
|
157
|
+
fromAgentId: string;
|
|
158
|
+
fromWalletId: string;
|
|
159
|
+
toAgentId: string;
|
|
160
|
+
amount: string;
|
|
161
|
+
message?: string;
|
|
162
|
+
}): Promise<{
|
|
163
|
+
toJar: TipJar;
|
|
164
|
+
toAddress: string;
|
|
165
|
+
chain: string;
|
|
166
|
+
amount: string;
|
|
167
|
+
message?: string;
|
|
168
|
+
} | null>;
|
|
169
|
+
}
|
|
170
|
+
export default TipJarManager;
|
|
171
|
+
//# sourceMappingURL=tips.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tips.d.ts","sourceRoot":"","sources":["../lib/tips.ts"],"names":[],"mappings":"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"}
|