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,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Escrow Templates
|
|
3
|
+
*
|
|
4
|
+
* Pre-built escrow configurations for common use cases across multiple verticals.
|
|
5
|
+
*/
|
|
6
|
+
import type { EscrowCondition } from './escrow';
|
|
7
|
+
export type EscrowVertical = 'real_estate' | 'freelance' | 'commerce' | 'services' | 'p2p' | 'digital' | 'custom';
|
|
8
|
+
export interface EscrowTemplate {
|
|
9
|
+
name: string;
|
|
10
|
+
description: string;
|
|
11
|
+
vertical: EscrowVertical;
|
|
12
|
+
conditions: Omit<EscrowCondition, 'id' | 'status'>[];
|
|
13
|
+
releaseRequires: 'all_conditions' | 'majority_approval' | 'condition_based' | 'any_party';
|
|
14
|
+
recommendedPartyRoles: string[];
|
|
15
|
+
autoReleaseDays?: number;
|
|
16
|
+
metadata?: Record<string, any>;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Pre-built escrow templates
|
|
20
|
+
*/
|
|
21
|
+
export declare const ESCROW_TEMPLATES: Record<string, EscrowTemplate>;
|
|
22
|
+
/**
|
|
23
|
+
* Get template by name
|
|
24
|
+
*/
|
|
25
|
+
export declare function getTemplate(name: string): EscrowTemplate | undefined;
|
|
26
|
+
/**
|
|
27
|
+
* List all templates
|
|
28
|
+
*/
|
|
29
|
+
export declare function listTemplates(): EscrowTemplate[];
|
|
30
|
+
/**
|
|
31
|
+
* List templates by vertical
|
|
32
|
+
*/
|
|
33
|
+
export declare function listTemplatesByVertical(vertical: EscrowVertical): EscrowTemplate[];
|
|
34
|
+
/**
|
|
35
|
+
* Get all verticals
|
|
36
|
+
*/
|
|
37
|
+
export declare function getVerticals(): EscrowVertical[];
|
|
38
|
+
//# sourceMappingURL=escrow-templates.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"escrow-templates.d.ts","sourceRoot":"","sources":["../lib/escrow-templates.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAEhD,MAAM,MAAM,cAAc,GACtB,aAAa,GACb,WAAW,GACX,UAAU,GACV,UAAU,GACV,KAAK,GACL,SAAS,GACT,QAAQ,CAAC;AAEb,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,cAAc,CAAC;IACzB,UAAU,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,GAAG,QAAQ,CAAC,EAAE,CAAC;IACrD,eAAe,EAAE,gBAAgB,GAAG,mBAAmB,GAAG,iBAAiB,GAAG,WAAW,CAAC;IAC1F,qBAAqB,EAAE,MAAM,EAAE,CAAC;IAChC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAChC;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAiZ3D,CAAC;AAEF;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAEpE;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,cAAc,EAAE,CAEhD;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,cAAc,GAAG,cAAc,EAAE,CAElF;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,cAAc,EAAE,CAE/C"}
|
|
@@ -0,0 +1,419 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Escrow Templates
|
|
4
|
+
*
|
|
5
|
+
* Pre-built escrow configurations for common use cases across multiple verticals.
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.ESCROW_TEMPLATES = void 0;
|
|
9
|
+
exports.getTemplate = getTemplate;
|
|
10
|
+
exports.listTemplates = listTemplates;
|
|
11
|
+
exports.listTemplatesByVertical = listTemplatesByVertical;
|
|
12
|
+
exports.getVerticals = getVerticals;
|
|
13
|
+
/**
|
|
14
|
+
* Pre-built escrow templates
|
|
15
|
+
*/
|
|
16
|
+
exports.ESCROW_TEMPLATES = {
|
|
17
|
+
// ============ REAL ESTATE ============
|
|
18
|
+
earnest_money: {
|
|
19
|
+
name: 'Earnest Money Deposit',
|
|
20
|
+
description: 'Traditional real estate earnest money escrow with standard contingencies',
|
|
21
|
+
vertical: 'real_estate',
|
|
22
|
+
conditions: [
|
|
23
|
+
{
|
|
24
|
+
description: 'Home inspection satisfactory',
|
|
25
|
+
type: 'inspection',
|
|
26
|
+
deadline: new Date(Date.now() + 10 * 24 * 60 * 60 * 1000).toISOString(),
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
description: 'Financing approved',
|
|
30
|
+
type: 'financing',
|
|
31
|
+
deadline: new Date(Date.now() + 21 * 24 * 60 * 60 * 1000).toISOString(),
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
description: 'Title clear',
|
|
35
|
+
type: 'title',
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
description: 'Closing completed',
|
|
39
|
+
type: 'closing',
|
|
40
|
+
},
|
|
41
|
+
],
|
|
42
|
+
releaseRequires: 'all_conditions',
|
|
43
|
+
recommendedPartyRoles: ['buyer', 'seller', 'agent', 'title_company'],
|
|
44
|
+
},
|
|
45
|
+
security_deposit: {
|
|
46
|
+
name: 'Rental Security Deposit',
|
|
47
|
+
description: 'Landlord-tenant security deposit with move-out conditions',
|
|
48
|
+
vertical: 'real_estate',
|
|
49
|
+
conditions: [
|
|
50
|
+
{
|
|
51
|
+
description: 'Lease term completed',
|
|
52
|
+
type: 'move_out',
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
description: 'Property inspection passed',
|
|
56
|
+
type: 'inspection',
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
description: 'No outstanding damages',
|
|
60
|
+
type: 'verification',
|
|
61
|
+
},
|
|
62
|
+
],
|
|
63
|
+
releaseRequires: 'all_conditions',
|
|
64
|
+
recommendedPartyRoles: ['landlord', 'tenant'],
|
|
65
|
+
},
|
|
66
|
+
closing_funds: {
|
|
67
|
+
name: 'Closing Funds Escrow',
|
|
68
|
+
description: 'Full real estate transaction closing',
|
|
69
|
+
vertical: 'real_estate',
|
|
70
|
+
conditions: [
|
|
71
|
+
{
|
|
72
|
+
description: 'All contingencies satisfied',
|
|
73
|
+
type: 'custom',
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
description: 'Title transferred',
|
|
77
|
+
type: 'title',
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
description: 'Closing documents signed',
|
|
81
|
+
type: 'closing',
|
|
82
|
+
},
|
|
83
|
+
],
|
|
84
|
+
releaseRequires: 'all_conditions',
|
|
85
|
+
recommendedPartyRoles: ['buyer', 'seller', 'title_company'],
|
|
86
|
+
},
|
|
87
|
+
// ============ FREELANCE ============
|
|
88
|
+
project_milestone: {
|
|
89
|
+
name: 'Milestone-Based Project',
|
|
90
|
+
description: 'Freelance project with staged milestone payments',
|
|
91
|
+
vertical: 'freelance',
|
|
92
|
+
conditions: [
|
|
93
|
+
{
|
|
94
|
+
description: 'Design phase approved',
|
|
95
|
+
type: 'milestone',
|
|
96
|
+
releasePercentage: '25',
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
description: 'Development complete',
|
|
100
|
+
type: 'milestone',
|
|
101
|
+
releasePercentage: '50',
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
description: 'Final delivery and approval',
|
|
105
|
+
type: 'delivery',
|
|
106
|
+
releasePercentage: '25',
|
|
107
|
+
},
|
|
108
|
+
],
|
|
109
|
+
releaseRequires: 'condition_based',
|
|
110
|
+
recommendedPartyRoles: ['client', 'provider'],
|
|
111
|
+
},
|
|
112
|
+
freelance_delivery: {
|
|
113
|
+
name: 'Simple Freelance Delivery',
|
|
114
|
+
description: 'Single delivery with client approval',
|
|
115
|
+
vertical: 'freelance',
|
|
116
|
+
conditions: [
|
|
117
|
+
{
|
|
118
|
+
description: 'Work delivered',
|
|
119
|
+
type: 'delivery',
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
description: 'Client approval',
|
|
123
|
+
type: 'approval',
|
|
124
|
+
},
|
|
125
|
+
],
|
|
126
|
+
releaseRequires: 'all_conditions',
|
|
127
|
+
recommendedPartyRoles: ['client', 'provider'],
|
|
128
|
+
autoReleaseDays: 7, // Auto-release if client doesn't respond
|
|
129
|
+
},
|
|
130
|
+
consulting_retainer: {
|
|
131
|
+
name: 'Consulting Retainer',
|
|
132
|
+
description: 'Monthly retainer with deliverable verification',
|
|
133
|
+
vertical: 'freelance',
|
|
134
|
+
conditions: [
|
|
135
|
+
{
|
|
136
|
+
description: 'Monthly report delivered',
|
|
137
|
+
type: 'delivery',
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
description: 'Deliverables meet agreement',
|
|
141
|
+
type: 'verification',
|
|
142
|
+
},
|
|
143
|
+
],
|
|
144
|
+
releaseRequires: 'all_conditions',
|
|
145
|
+
recommendedPartyRoles: ['client', 'consultant'],
|
|
146
|
+
},
|
|
147
|
+
// ============ COMMERCE ============
|
|
148
|
+
product_purchase: {
|
|
149
|
+
name: 'Product Purchase',
|
|
150
|
+
description: 'E-commerce purchase with shipping and receipt confirmation',
|
|
151
|
+
vertical: 'commerce',
|
|
152
|
+
conditions: [
|
|
153
|
+
{
|
|
154
|
+
description: 'Item shipped with tracking',
|
|
155
|
+
type: 'shipping',
|
|
156
|
+
},
|
|
157
|
+
{
|
|
158
|
+
description: 'Buyer confirms receipt',
|
|
159
|
+
type: 'receipt',
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
description: 'Item condition verified',
|
|
163
|
+
type: 'verification',
|
|
164
|
+
},
|
|
165
|
+
],
|
|
166
|
+
releaseRequires: 'all_conditions',
|
|
167
|
+
recommendedPartyRoles: ['buyer', 'seller'],
|
|
168
|
+
autoReleaseDays: 3, // Auto-release if buyer doesn't dispute
|
|
169
|
+
},
|
|
170
|
+
trade_swap: {
|
|
171
|
+
name: 'Item Trade/Swap',
|
|
172
|
+
description: 'Peer-to-peer item exchange',
|
|
173
|
+
vertical: 'commerce',
|
|
174
|
+
conditions: [
|
|
175
|
+
{
|
|
176
|
+
description: 'Both parties ship items',
|
|
177
|
+
type: 'shipping',
|
|
178
|
+
},
|
|
179
|
+
{
|
|
180
|
+
description: 'Both parties confirm receipt',
|
|
181
|
+
type: 'receipt',
|
|
182
|
+
},
|
|
183
|
+
{
|
|
184
|
+
description: 'Both parties approve condition',
|
|
185
|
+
type: 'approval',
|
|
186
|
+
},
|
|
187
|
+
],
|
|
188
|
+
releaseRequires: 'all_conditions',
|
|
189
|
+
recommendedPartyRoles: ['party_a', 'party_b'],
|
|
190
|
+
},
|
|
191
|
+
marketplace_sale: {
|
|
192
|
+
name: 'Marketplace Sale',
|
|
193
|
+
description: 'Third-party marketplace transaction',
|
|
194
|
+
vertical: 'commerce',
|
|
195
|
+
conditions: [
|
|
196
|
+
{
|
|
197
|
+
description: 'Payment received',
|
|
198
|
+
type: 'verification',
|
|
199
|
+
},
|
|
200
|
+
{
|
|
201
|
+
description: 'Item delivered',
|
|
202
|
+
type: 'delivery',
|
|
203
|
+
},
|
|
204
|
+
{
|
|
205
|
+
description: 'No disputes filed',
|
|
206
|
+
type: 'verification',
|
|
207
|
+
},
|
|
208
|
+
],
|
|
209
|
+
releaseRequires: 'all_conditions',
|
|
210
|
+
recommendedPartyRoles: ['buyer', 'seller', 'marketplace'],
|
|
211
|
+
autoReleaseDays: 7,
|
|
212
|
+
},
|
|
213
|
+
// ============ P2P TRADING ============
|
|
214
|
+
crypto_otc: {
|
|
215
|
+
name: 'Crypto OTC Trade',
|
|
216
|
+
description: 'Over-the-counter crypto/token swap',
|
|
217
|
+
vertical: 'p2p',
|
|
218
|
+
conditions: [
|
|
219
|
+
{
|
|
220
|
+
description: 'Both parties deposit funds',
|
|
221
|
+
type: 'verification',
|
|
222
|
+
},
|
|
223
|
+
{
|
|
224
|
+
description: 'Both parties approve swap',
|
|
225
|
+
type: 'approval',
|
|
226
|
+
},
|
|
227
|
+
],
|
|
228
|
+
releaseRequires: 'all_conditions',
|
|
229
|
+
recommendedPartyRoles: ['party_a', 'party_b'],
|
|
230
|
+
},
|
|
231
|
+
nft_trade: {
|
|
232
|
+
name: 'NFT Trade',
|
|
233
|
+
description: 'NFT swap or sale with verification',
|
|
234
|
+
vertical: 'p2p',
|
|
235
|
+
conditions: [
|
|
236
|
+
{
|
|
237
|
+
description: 'NFT ownership verified',
|
|
238
|
+
type: 'verification',
|
|
239
|
+
},
|
|
240
|
+
{
|
|
241
|
+
description: 'Payment confirmed',
|
|
242
|
+
type: 'verification',
|
|
243
|
+
},
|
|
244
|
+
{
|
|
245
|
+
description: 'Both parties approve transfer',
|
|
246
|
+
type: 'approval',
|
|
247
|
+
},
|
|
248
|
+
],
|
|
249
|
+
releaseRequires: 'all_conditions',
|
|
250
|
+
recommendedPartyRoles: ['buyer', 'seller'],
|
|
251
|
+
},
|
|
252
|
+
peer_loan: {
|
|
253
|
+
name: 'Peer-to-Peer Loan',
|
|
254
|
+
description: 'P2P lending with collateral',
|
|
255
|
+
vertical: 'p2p',
|
|
256
|
+
conditions: [
|
|
257
|
+
{
|
|
258
|
+
description: 'Collateral deposited',
|
|
259
|
+
type: 'verification',
|
|
260
|
+
},
|
|
261
|
+
{
|
|
262
|
+
description: 'Repayment deadline met',
|
|
263
|
+
type: 'deadline',
|
|
264
|
+
deadline: new Date(Date.now() + 30 * 24 * 60 * 60 * 1000).toISOString(),
|
|
265
|
+
},
|
|
266
|
+
],
|
|
267
|
+
releaseRequires: 'all_conditions',
|
|
268
|
+
recommendedPartyRoles: ['lender', 'borrower'],
|
|
269
|
+
},
|
|
270
|
+
// ============ DIGITAL GOODS ============
|
|
271
|
+
digital_license: {
|
|
272
|
+
name: 'Digital License Purchase',
|
|
273
|
+
description: 'Software license or digital product sale',
|
|
274
|
+
vertical: 'digital',
|
|
275
|
+
conditions: [
|
|
276
|
+
{
|
|
277
|
+
description: 'License key delivered',
|
|
278
|
+
type: 'delivery',
|
|
279
|
+
},
|
|
280
|
+
{
|
|
281
|
+
description: 'License activated successfully',
|
|
282
|
+
type: 'verification',
|
|
283
|
+
},
|
|
284
|
+
],
|
|
285
|
+
releaseRequires: 'all_conditions',
|
|
286
|
+
recommendedPartyRoles: ['buyer', 'vendor'],
|
|
287
|
+
autoReleaseDays: 3,
|
|
288
|
+
},
|
|
289
|
+
saas_subscription: {
|
|
290
|
+
name: 'SaaS Subscription Escrow',
|
|
291
|
+
description: 'Recurring SaaS payment with service verification',
|
|
292
|
+
vertical: 'digital',
|
|
293
|
+
conditions: [
|
|
294
|
+
{
|
|
295
|
+
description: 'Service access granted',
|
|
296
|
+
type: 'verification',
|
|
297
|
+
},
|
|
298
|
+
{
|
|
299
|
+
description: 'Uptime SLA met',
|
|
300
|
+
type: 'custom',
|
|
301
|
+
metadata: { slaPercentage: 99.9 },
|
|
302
|
+
},
|
|
303
|
+
],
|
|
304
|
+
releaseRequires: 'all_conditions',
|
|
305
|
+
recommendedPartyRoles: ['subscriber', 'provider'],
|
|
306
|
+
},
|
|
307
|
+
digital_content: {
|
|
308
|
+
name: 'Digital Content Purchase',
|
|
309
|
+
description: 'Ebook, course, template, or other digital content',
|
|
310
|
+
vertical: 'digital',
|
|
311
|
+
conditions: [
|
|
312
|
+
{
|
|
313
|
+
description: 'Content delivered',
|
|
314
|
+
type: 'delivery',
|
|
315
|
+
},
|
|
316
|
+
{
|
|
317
|
+
description: 'Download successful',
|
|
318
|
+
type: 'verification',
|
|
319
|
+
},
|
|
320
|
+
],
|
|
321
|
+
releaseRequires: 'all_conditions',
|
|
322
|
+
recommendedPartyRoles: ['buyer', 'creator'],
|
|
323
|
+
autoReleaseDays: 1,
|
|
324
|
+
},
|
|
325
|
+
// ============ SERVICES ============
|
|
326
|
+
service_agreement: {
|
|
327
|
+
name: 'Service Agreement',
|
|
328
|
+
description: 'General service contract with completion verification',
|
|
329
|
+
vertical: 'services',
|
|
330
|
+
conditions: [
|
|
331
|
+
{
|
|
332
|
+
description: 'Service completed',
|
|
333
|
+
type: 'approval',
|
|
334
|
+
},
|
|
335
|
+
{
|
|
336
|
+
description: 'Quality requirements met',
|
|
337
|
+
type: 'verification',
|
|
338
|
+
},
|
|
339
|
+
],
|
|
340
|
+
releaseRequires: 'all_conditions',
|
|
341
|
+
recommendedPartyRoles: ['client', 'provider'],
|
|
342
|
+
},
|
|
343
|
+
sla_based_service: {
|
|
344
|
+
name: 'SLA-Based Service',
|
|
345
|
+
description: 'Service with SLA requirements',
|
|
346
|
+
vertical: 'services',
|
|
347
|
+
conditions: [
|
|
348
|
+
{
|
|
349
|
+
description: 'SLA metrics met',
|
|
350
|
+
type: 'custom',
|
|
351
|
+
},
|
|
352
|
+
{
|
|
353
|
+
description: 'Service period complete',
|
|
354
|
+
type: 'deadline',
|
|
355
|
+
deadline: new Date(Date.now() + 30 * 24 * 60 * 60 * 1000).toISOString(),
|
|
356
|
+
},
|
|
357
|
+
{
|
|
358
|
+
description: 'Client approval',
|
|
359
|
+
type: 'approval',
|
|
360
|
+
},
|
|
361
|
+
],
|
|
362
|
+
releaseRequires: 'all_conditions',
|
|
363
|
+
recommendedPartyRoles: ['client', 'provider'],
|
|
364
|
+
},
|
|
365
|
+
construction_contract: {
|
|
366
|
+
name: 'Construction/Renovation Contract',
|
|
367
|
+
description: 'Construction project with inspection milestones',
|
|
368
|
+
vertical: 'services',
|
|
369
|
+
conditions: [
|
|
370
|
+
{
|
|
371
|
+
description: 'Foundation complete',
|
|
372
|
+
type: 'milestone',
|
|
373
|
+
releasePercentage: '25',
|
|
374
|
+
},
|
|
375
|
+
{
|
|
376
|
+
description: 'Framing and electrical',
|
|
377
|
+
type: 'milestone',
|
|
378
|
+
releasePercentage: '25',
|
|
379
|
+
},
|
|
380
|
+
{
|
|
381
|
+
description: 'Finishing work',
|
|
382
|
+
type: 'milestone',
|
|
383
|
+
releasePercentage: '25',
|
|
384
|
+
},
|
|
385
|
+
{
|
|
386
|
+
description: 'Final inspection passed',
|
|
387
|
+
type: 'inspection',
|
|
388
|
+
releasePercentage: '25',
|
|
389
|
+
},
|
|
390
|
+
],
|
|
391
|
+
releaseRequires: 'condition_based',
|
|
392
|
+
recommendedPartyRoles: ['client', 'contractor', 'inspector'],
|
|
393
|
+
},
|
|
394
|
+
};
|
|
395
|
+
/**
|
|
396
|
+
* Get template by name
|
|
397
|
+
*/
|
|
398
|
+
function getTemplate(name) {
|
|
399
|
+
return exports.ESCROW_TEMPLATES[name];
|
|
400
|
+
}
|
|
401
|
+
/**
|
|
402
|
+
* List all templates
|
|
403
|
+
*/
|
|
404
|
+
function listTemplates() {
|
|
405
|
+
return Object.values(exports.ESCROW_TEMPLATES);
|
|
406
|
+
}
|
|
407
|
+
/**
|
|
408
|
+
* List templates by vertical
|
|
409
|
+
*/
|
|
410
|
+
function listTemplatesByVertical(vertical) {
|
|
411
|
+
return Object.values(exports.ESCROW_TEMPLATES).filter(t => t.vertical === vertical);
|
|
412
|
+
}
|
|
413
|
+
/**
|
|
414
|
+
* Get all verticals
|
|
415
|
+
*/
|
|
416
|
+
function getVerticals() {
|
|
417
|
+
return ['real_estate', 'freelance', 'commerce', 'services', 'p2p', 'digital', 'custom'];
|
|
418
|
+
}
|
|
419
|
+
//# sourceMappingURL=escrow-templates.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"escrow-templates.js","sourceRoot":"","sources":["../lib/escrow-templates.ts"],"names":[],"mappings":"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"}
|