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,193 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Condition Builder
|
|
4
|
+
*
|
|
5
|
+
* Fluent API for building custom escrow release conditions.
|
|
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.ConditionBuilder = void 0;
|
|
12
|
+
const crypto_1 = __importDefault(require("crypto"));
|
|
13
|
+
/**
|
|
14
|
+
* Fluent builder for escrow conditions
|
|
15
|
+
*/
|
|
16
|
+
class ConditionBuilder {
|
|
17
|
+
/**
|
|
18
|
+
* Create a milestone condition (with optional partial release)
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* ConditionBuilder.milestone('Design approved', 25)
|
|
22
|
+
* // Releases 25% when satisfied
|
|
23
|
+
*/
|
|
24
|
+
static milestone(description, releasePercent) {
|
|
25
|
+
return {
|
|
26
|
+
id: crypto_1.default.randomUUID(),
|
|
27
|
+
description,
|
|
28
|
+
type: 'milestone',
|
|
29
|
+
status: 'pending',
|
|
30
|
+
...(releasePercent !== undefined && { releasePercentage: releasePercent.toString() }),
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Create an approval condition (requires specific party approval)
|
|
35
|
+
*
|
|
36
|
+
* @example
|
|
37
|
+
* ConditionBuilder.approval('client')
|
|
38
|
+
*/
|
|
39
|
+
static approval(fromRole, description) {
|
|
40
|
+
return {
|
|
41
|
+
id: crypto_1.default.randomUUID(),
|
|
42
|
+
description: description || `Approval required from ${fromRole}`,
|
|
43
|
+
type: 'approval',
|
|
44
|
+
status: 'pending',
|
|
45
|
+
metadata: { requiredRole: fromRole },
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Create a deadline condition
|
|
50
|
+
*
|
|
51
|
+
* @example
|
|
52
|
+
* ConditionBuilder.deadline(new Date('2026-03-01'), 'Project completion deadline')
|
|
53
|
+
*/
|
|
54
|
+
static deadline(date, description) {
|
|
55
|
+
return {
|
|
56
|
+
id: crypto_1.default.randomUUID(),
|
|
57
|
+
description: description || `Deadline: ${date.toLocaleDateString()}`,
|
|
58
|
+
type: 'deadline',
|
|
59
|
+
status: 'pending',
|
|
60
|
+
deadline: date.toISOString(),
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Create a document requirement condition
|
|
65
|
+
*
|
|
66
|
+
* @example
|
|
67
|
+
* ConditionBuilder.document('Signed contract', 'Contract must be signed and uploaded')
|
|
68
|
+
*/
|
|
69
|
+
static document(requiredDoc, description) {
|
|
70
|
+
return {
|
|
71
|
+
id: crypto_1.default.randomUUID(),
|
|
72
|
+
description: description || `Document required: ${requiredDoc}`,
|
|
73
|
+
type: 'document',
|
|
74
|
+
status: 'pending',
|
|
75
|
+
metadata: { requiredDocument: requiredDoc },
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Create a delivery condition
|
|
80
|
+
*
|
|
81
|
+
* @example
|
|
82
|
+
* ConditionBuilder.delivery('Final deliverables submitted')
|
|
83
|
+
*/
|
|
84
|
+
static delivery(description, releasePercent) {
|
|
85
|
+
return {
|
|
86
|
+
id: crypto_1.default.randomUUID(),
|
|
87
|
+
description,
|
|
88
|
+
type: 'delivery',
|
|
89
|
+
status: 'pending',
|
|
90
|
+
...(releasePercent !== undefined && { releasePercentage: releasePercent.toString() }),
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Create a shipping condition
|
|
95
|
+
*
|
|
96
|
+
* @example
|
|
97
|
+
* ConditionBuilder.shipping('Item shipped with tracking')
|
|
98
|
+
*/
|
|
99
|
+
static shipping(description) {
|
|
100
|
+
return {
|
|
101
|
+
id: crypto_1.default.randomUUID(),
|
|
102
|
+
description,
|
|
103
|
+
type: 'shipping',
|
|
104
|
+
status: 'pending',
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Create a receipt/confirmation condition
|
|
109
|
+
*
|
|
110
|
+
* @example
|
|
111
|
+
* ConditionBuilder.receipt('Buyer confirms receipt of goods')
|
|
112
|
+
*/
|
|
113
|
+
static receipt(description) {
|
|
114
|
+
return {
|
|
115
|
+
id: crypto_1.default.randomUUID(),
|
|
116
|
+
description,
|
|
117
|
+
type: 'receipt',
|
|
118
|
+
status: 'pending',
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Create a verification condition
|
|
123
|
+
*
|
|
124
|
+
* @example
|
|
125
|
+
* ConditionBuilder.verification('Both parties confirm deposit')
|
|
126
|
+
*/
|
|
127
|
+
static verification(description) {
|
|
128
|
+
return {
|
|
129
|
+
id: crypto_1.default.randomUUID(),
|
|
130
|
+
description,
|
|
131
|
+
type: 'verification',
|
|
132
|
+
status: 'pending',
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Create a custom condition
|
|
137
|
+
*
|
|
138
|
+
* @example
|
|
139
|
+
* ConditionBuilder.custom('SLA requirements met', { slaLevel: 'premium' })
|
|
140
|
+
*/
|
|
141
|
+
static custom(description, metadata) {
|
|
142
|
+
return {
|
|
143
|
+
id: crypto_1.default.randomUUID(),
|
|
144
|
+
description,
|
|
145
|
+
type: 'custom',
|
|
146
|
+
status: 'pending',
|
|
147
|
+
metadata,
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Create a real estate inspection condition
|
|
152
|
+
*/
|
|
153
|
+
static inspection(description, deadlineDays) {
|
|
154
|
+
const deadline = deadlineDays
|
|
155
|
+
? new Date(Date.now() + deadlineDays * 24 * 60 * 60 * 1000).toISOString()
|
|
156
|
+
: undefined;
|
|
157
|
+
return {
|
|
158
|
+
id: crypto_1.default.randomUUID(),
|
|
159
|
+
description,
|
|
160
|
+
type: 'inspection',
|
|
161
|
+
status: 'pending',
|
|
162
|
+
...(deadline && { deadline }),
|
|
163
|
+
};
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Create a financing condition
|
|
167
|
+
*/
|
|
168
|
+
static financing(description, deadlineDays) {
|
|
169
|
+
const deadline = deadlineDays
|
|
170
|
+
? new Date(Date.now() + deadlineDays * 24 * 60 * 60 * 1000).toISOString()
|
|
171
|
+
: undefined;
|
|
172
|
+
return {
|
|
173
|
+
id: crypto_1.default.randomUUID(),
|
|
174
|
+
description,
|
|
175
|
+
type: 'financing',
|
|
176
|
+
status: 'pending',
|
|
177
|
+
...(deadline && { deadline }),
|
|
178
|
+
};
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* Create a title condition
|
|
182
|
+
*/
|
|
183
|
+
static title(description) {
|
|
184
|
+
return {
|
|
185
|
+
id: crypto_1.default.randomUUID(),
|
|
186
|
+
description,
|
|
187
|
+
type: 'title',
|
|
188
|
+
status: 'pending',
|
|
189
|
+
};
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
exports.ConditionBuilder = ConditionBuilder;
|
|
193
|
+
//# sourceMappingURL=condition-builder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"condition-builder.js","sourceRoot":"","sources":["../lib/condition-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Contact & Address Book Management
|
|
3
|
+
*
|
|
4
|
+
* Secure storage for payment contacts with labels, validation, and search.
|
|
5
|
+
*/
|
|
6
|
+
export interface Contact {
|
|
7
|
+
id: string;
|
|
8
|
+
name: string;
|
|
9
|
+
alias?: string;
|
|
10
|
+
email?: string;
|
|
11
|
+
phone?: string;
|
|
12
|
+
addresses: {
|
|
13
|
+
chain: string;
|
|
14
|
+
address: string;
|
|
15
|
+
label?: string;
|
|
16
|
+
verified: boolean;
|
|
17
|
+
addedAt: string;
|
|
18
|
+
}[];
|
|
19
|
+
defaultChain?: string;
|
|
20
|
+
defaultAddress?: string;
|
|
21
|
+
tags: string[];
|
|
22
|
+
totalSent: string;
|
|
23
|
+
totalReceived: string;
|
|
24
|
+
lastTransactionAt?: string;
|
|
25
|
+
transactionCount: number;
|
|
26
|
+
notes?: string;
|
|
27
|
+
createdAt: string;
|
|
28
|
+
updatedAt: string;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Contact Manager
|
|
32
|
+
*/
|
|
33
|
+
export declare class ContactManager {
|
|
34
|
+
private dataPath;
|
|
35
|
+
constructor(dataDir?: string);
|
|
36
|
+
private loadContacts;
|
|
37
|
+
private saveContacts;
|
|
38
|
+
/**
|
|
39
|
+
* Add a new contact
|
|
40
|
+
*/
|
|
41
|
+
add(params: {
|
|
42
|
+
name: string;
|
|
43
|
+
alias?: string;
|
|
44
|
+
email?: string;
|
|
45
|
+
phone?: string;
|
|
46
|
+
addresses?: {
|
|
47
|
+
chain: string;
|
|
48
|
+
address: string;
|
|
49
|
+
label?: string;
|
|
50
|
+
}[];
|
|
51
|
+
tags?: string[];
|
|
52
|
+
notes?: string;
|
|
53
|
+
}): Promise<Contact>;
|
|
54
|
+
/**
|
|
55
|
+
* Find contact by name, alias, or address
|
|
56
|
+
*/
|
|
57
|
+
find(query: string): Promise<Contact | null>;
|
|
58
|
+
/**
|
|
59
|
+
* Resolve a recipient (name, alias, or address) to an address
|
|
60
|
+
*/
|
|
61
|
+
resolveRecipient(recipient: string, chain?: string): Promise<{
|
|
62
|
+
contact?: Contact;
|
|
63
|
+
address: string;
|
|
64
|
+
chain: string;
|
|
65
|
+
} | null>;
|
|
66
|
+
/**
|
|
67
|
+
* Search contacts
|
|
68
|
+
*/
|
|
69
|
+
search(query: string): Promise<Contact[]>;
|
|
70
|
+
/**
|
|
71
|
+
* List all contacts
|
|
72
|
+
*/
|
|
73
|
+
list(options?: {
|
|
74
|
+
tag?: string;
|
|
75
|
+
sortBy?: 'name' | 'recent' | 'frequent';
|
|
76
|
+
}): Promise<Contact[]>;
|
|
77
|
+
/**
|
|
78
|
+
* Find contact by address
|
|
79
|
+
*/
|
|
80
|
+
findByAddress(address: string): Promise<Contact | null>;
|
|
81
|
+
/**
|
|
82
|
+
* Update contact
|
|
83
|
+
*/
|
|
84
|
+
update(id: string, updates: Partial<Omit<Contact, 'id' | 'createdAt'>>): Promise<Contact | null>;
|
|
85
|
+
/**
|
|
86
|
+
* Add address to contact
|
|
87
|
+
*/
|
|
88
|
+
addAddress(contactId: string, address: {
|
|
89
|
+
chain: string;
|
|
90
|
+
address: string;
|
|
91
|
+
label?: string;
|
|
92
|
+
}): Promise<Contact | null>;
|
|
93
|
+
/**
|
|
94
|
+
* Remove address from contact
|
|
95
|
+
*/
|
|
96
|
+
removeAddress(contactId: string, chain: string): Promise<Contact | null>;
|
|
97
|
+
/**
|
|
98
|
+
* Set default address for contact
|
|
99
|
+
*/
|
|
100
|
+
setDefault(contactId: string, chain: string): Promise<Contact | null>;
|
|
101
|
+
/**
|
|
102
|
+
* Add tags to contact
|
|
103
|
+
*/
|
|
104
|
+
addTags(contactId: string, tags: string[]): Promise<Contact | null>;
|
|
105
|
+
/**
|
|
106
|
+
* Record a transaction with contact
|
|
107
|
+
*/
|
|
108
|
+
recordTransaction(address: string, type: 'sent' | 'received', amount: string): Promise<void>;
|
|
109
|
+
/**
|
|
110
|
+
* Delete contact
|
|
111
|
+
*/
|
|
112
|
+
delete(id: string): Promise<boolean>;
|
|
113
|
+
/**
|
|
114
|
+
* Export contacts to CSV
|
|
115
|
+
*/
|
|
116
|
+
exportCSV(): Promise<string>;
|
|
117
|
+
/**
|
|
118
|
+
* Import contacts from CSV
|
|
119
|
+
*/
|
|
120
|
+
importCSV(csvContent: string): Promise<{
|
|
121
|
+
imported: number;
|
|
122
|
+
skipped: number;
|
|
123
|
+
}>;
|
|
124
|
+
/**
|
|
125
|
+
* Validate Ethereum address
|
|
126
|
+
*/
|
|
127
|
+
private isValidAddress;
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* x402 Premium Contact Features
|
|
131
|
+
*
|
|
132
|
+
* Premium verification and risk assessment services
|
|
133
|
+
*/
|
|
134
|
+
export interface PremiumContactFeatures {
|
|
135
|
+
onChainVerification?: boolean;
|
|
136
|
+
riskAssessment?: boolean;
|
|
137
|
+
fraudDetection?: boolean;
|
|
138
|
+
transactionHistory?: boolean;
|
|
139
|
+
}
|
|
140
|
+
export interface ContactVerificationResult {
|
|
141
|
+
contact: Contact;
|
|
142
|
+
onChainVerified: boolean;
|
|
143
|
+
riskScore?: {
|
|
144
|
+
score: number;
|
|
145
|
+
level: 'low' | 'medium' | 'high' | 'critical';
|
|
146
|
+
factors: string[];
|
|
147
|
+
};
|
|
148
|
+
fraudFlags?: string[];
|
|
149
|
+
transactionSummary?: {
|
|
150
|
+
totalVolume: string;
|
|
151
|
+
transactionCount: number;
|
|
152
|
+
firstSeen: string;
|
|
153
|
+
lastSeen: string;
|
|
154
|
+
interactedWith: number;
|
|
155
|
+
};
|
|
156
|
+
verified: boolean;
|
|
157
|
+
verifiedAt: string;
|
|
158
|
+
}
|
|
159
|
+
export declare const PREMIUM_CONTACT_PRICING: {
|
|
160
|
+
basicVerification: string;
|
|
161
|
+
fullVerification: string;
|
|
162
|
+
fraudCheck: string;
|
|
163
|
+
fullReport: string;
|
|
164
|
+
};
|
|
165
|
+
/**
|
|
166
|
+
* Generate x402 verification URL for contact
|
|
167
|
+
*/
|
|
168
|
+
export declare function generateX402VerificationUrl(contactId: string, verificationType?: 'basic' | 'full' | 'fraud' | 'report', baseUrl?: string): string;
|
|
169
|
+
/**
|
|
170
|
+
* Verify contact with premium features via x402
|
|
171
|
+
*/
|
|
172
|
+
export declare function verifyContactPremium(contact: Contact, features: PremiumContactFeatures, x402Fetch: (url: string) => Promise<Response>): Promise<ContactVerificationResult>;
|
|
173
|
+
/**
|
|
174
|
+
* Mock verification for testing
|
|
175
|
+
* Simulates what a real x402-protected endpoint would return
|
|
176
|
+
*/
|
|
177
|
+
export declare function mockContactVerification(contact: Contact): ContactVerificationResult;
|
|
178
|
+
export default ContactManager;
|
|
179
|
+
//# sourceMappingURL=contacts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contacts.d.ts","sourceRoot":"","sources":["../lib/contacts.ts"],"names":[],"mappings":"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"}
|