@agirails/sdk 2.2.0 → 2.2.2
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/dist/ACTPClient.d.ts +200 -0
- package/dist/ACTPClient.d.ts.map +1 -1
- package/dist/ACTPClient.js +266 -2
- package/dist/ACTPClient.js.map +1 -1
- package/dist/abi/ACTPKernel.json +16 -0
- package/dist/adapters/AdapterRegistry.d.ts +140 -0
- package/dist/adapters/AdapterRegistry.d.ts.map +1 -0
- package/dist/adapters/AdapterRegistry.js +166 -0
- package/dist/adapters/AdapterRegistry.js.map +1 -0
- package/dist/adapters/AdapterRouter.d.ts +165 -0
- package/dist/adapters/AdapterRouter.d.ts.map +1 -0
- package/dist/adapters/AdapterRouter.js +350 -0
- package/dist/adapters/AdapterRouter.js.map +1 -0
- package/dist/adapters/BaseAdapter.d.ts +17 -0
- package/dist/adapters/BaseAdapter.d.ts.map +1 -1
- package/dist/adapters/BaseAdapter.js +21 -0
- package/dist/adapters/BaseAdapter.js.map +1 -1
- package/dist/adapters/BasicAdapter.d.ts +72 -3
- package/dist/adapters/BasicAdapter.d.ts.map +1 -1
- package/dist/adapters/BasicAdapter.js +170 -2
- package/dist/adapters/BasicAdapter.js.map +1 -1
- package/dist/adapters/IAdapter.d.ts +230 -0
- package/dist/adapters/IAdapter.d.ts.map +1 -0
- package/dist/adapters/IAdapter.js +44 -0
- package/dist/adapters/IAdapter.js.map +1 -0
- package/dist/adapters/StandardAdapter.d.ts +70 -1
- package/dist/adapters/StandardAdapter.d.ts.map +1 -1
- package/dist/adapters/StandardAdapter.js +184 -0
- package/dist/adapters/StandardAdapter.js.map +1 -1
- package/dist/adapters/X402Adapter.d.ts +208 -0
- package/dist/adapters/X402Adapter.d.ts.map +1 -0
- package/dist/adapters/X402Adapter.js +423 -0
- package/dist/adapters/X402Adapter.js.map +1 -0
- package/dist/adapters/index.d.ts +8 -0
- package/dist/adapters/index.d.ts.map +1 -1
- package/dist/adapters/index.js +19 -1
- package/dist/adapters/index.js.map +1 -1
- package/dist/cli/commands/init.d.ts +4 -0
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +184 -4
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/config/networks.js +3 -3
- package/dist/config/networks.js.map +1 -1
- package/dist/erc8004/ERC8004Bridge.d.ts +155 -0
- package/dist/erc8004/ERC8004Bridge.d.ts.map +1 -0
- package/dist/erc8004/ERC8004Bridge.js +325 -0
- package/dist/erc8004/ERC8004Bridge.js.map +1 -0
- package/dist/erc8004/ReputationReporter.d.ts +223 -0
- package/dist/erc8004/ReputationReporter.d.ts.map +1 -0
- package/dist/erc8004/ReputationReporter.js +266 -0
- package/dist/erc8004/ReputationReporter.js.map +1 -0
- package/dist/erc8004/index.d.ts +36 -0
- package/dist/erc8004/index.d.ts.map +1 -0
- package/dist/erc8004/index.js +46 -0
- package/dist/erc8004/index.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +21 -2
- package/dist/index.js.map +1 -1
- package/dist/protocol/ACTPKernel.d.ts +1 -1
- package/dist/protocol/ACTPKernel.d.ts.map +1 -1
- package/dist/protocol/ACTPKernel.js +16 -7
- package/dist/protocol/ACTPKernel.js.map +1 -1
- package/dist/runtime/BlockchainRuntime.d.ts.map +1 -1
- package/dist/runtime/BlockchainRuntime.js +2 -0
- package/dist/runtime/BlockchainRuntime.js.map +1 -1
- package/dist/runtime/IACTPRuntime.d.ts +6 -0
- package/dist/runtime/IACTPRuntime.d.ts.map +1 -1
- package/dist/runtime/MockRuntime.d.ts +12 -0
- package/dist/runtime/MockRuntime.d.ts.map +1 -1
- package/dist/runtime/MockRuntime.js +41 -0
- package/dist/runtime/MockRuntime.js.map +1 -1
- package/dist/runtime/types/MockState.d.ts +6 -0
- package/dist/runtime/types/MockState.d.ts.map +1 -1
- package/dist/runtime/types/MockState.js.map +1 -1
- package/dist/types/adapter.d.ts +359 -0
- package/dist/types/adapter.d.ts.map +1 -0
- package/dist/types/adapter.js +115 -0
- package/dist/types/adapter.js.map +1 -0
- package/dist/types/erc8004.d.ts +184 -0
- package/dist/types/erc8004.d.ts.map +1 -0
- package/dist/types/erc8004.js +132 -0
- package/dist/types/erc8004.js.map +1 -0
- package/dist/types/index.d.ts +3 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +3 -0
- package/dist/types/index.js.map +1 -1
- package/dist/types/transaction.d.ts +12 -0
- package/dist/types/transaction.d.ts.map +1 -1
- package/dist/types/x402.d.ts +162 -0
- package/dist/types/x402.d.ts.map +1 -0
- package/dist/types/x402.js +162 -0
- package/dist/types/x402.js.map +1 -0
- package/package.json +3 -2
- package/src/ACTPClient.ts +318 -2
- package/src/abi/ACTPKernel.json +16 -0
- package/src/adapters/AdapterRegistry.ts +173 -0
- package/src/adapters/AdapterRouter.ts +417 -0
- package/src/adapters/BaseAdapter.ts +25 -0
- package/src/adapters/BasicAdapter.ts +199 -3
- package/src/adapters/IAdapter.ts +292 -0
- package/src/adapters/StandardAdapter.ts +220 -1
- package/src/adapters/X402Adapter.ts +653 -0
- package/src/adapters/index.ts +27 -0
- package/src/cli/commands/init.ts +208 -3
- package/src/config/networks.ts +3 -3
- package/src/erc8004/ERC8004Bridge.ts +461 -0
- package/src/erc8004/ReputationReporter.ts +472 -0
- package/src/erc8004/index.ts +61 -0
- package/src/index.ts +43 -0
- package/src/protocol/ACTPKernel.ts +26 -7
- package/src/runtime/BlockchainRuntime.ts +2 -0
- package/src/runtime/IACTPRuntime.ts +6 -0
- package/src/runtime/MockRuntime.ts +42 -0
- package/src/runtime/types/MockState.ts +7 -0
- package/src/types/adapter.ts +296 -0
- package/src/types/erc8004.ts +293 -0
- package/src/types/index.ts +3 -0
- package/src/types/transaction.ts +12 -0
- package/src/types/x402.ts +219 -0
|
@@ -0,0 +1,350 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* AdapterRouter - Intelligent adapter selection with guard-rails.
|
|
4
|
+
*
|
|
5
|
+
* The router selects the best adapter for each payment based on:
|
|
6
|
+
* - Explicit adapter preference
|
|
7
|
+
* - Required capabilities (escrow, disputes, identity)
|
|
8
|
+
* - Recipient type (address vs HTTP endpoint)
|
|
9
|
+
* - Adapter priority
|
|
10
|
+
*
|
|
11
|
+
* SECURITY: All parameters are validated before selection.
|
|
12
|
+
* SECURITY: All adapters must enforce explicit release (no auto-settle).
|
|
13
|
+
*
|
|
14
|
+
* @module adapters/AdapterRouter
|
|
15
|
+
*/
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.AdapterRouter = void 0;
|
|
18
|
+
const adapter_1 = require("../types/adapter");
|
|
19
|
+
const BaseAdapter_1 = require("./BaseAdapter");
|
|
20
|
+
/**
|
|
21
|
+
* AdapterRouter - Intelligent adapter selection with guard-rails.
|
|
22
|
+
*
|
|
23
|
+
* Selection logic (in order):
|
|
24
|
+
* 1. Validate params (throws if invalid)
|
|
25
|
+
* 2. Explicit adapter requested -> use it
|
|
26
|
+
* 3. Escrow/dispute required -> StandardAdapter
|
|
27
|
+
* 4. HTTP endpoint + no escrow -> X402Adapter (when available)
|
|
28
|
+
* 5. ERC-8004 identity -> ERC8004Adapter (when available)
|
|
29
|
+
* 6. Default -> First adapter that can handle (by priority)
|
|
30
|
+
*
|
|
31
|
+
* @example
|
|
32
|
+
* ```typescript
|
|
33
|
+
* const registry = new AdapterRegistry();
|
|
34
|
+
* registry.register(basicAdapter);
|
|
35
|
+
* registry.register(standardAdapter);
|
|
36
|
+
*
|
|
37
|
+
* const router = new AdapterRouter(registry);
|
|
38
|
+
*
|
|
39
|
+
* // Auto-select best adapter
|
|
40
|
+
* const adapter = router.select({ to: '0x...', amount: '100' });
|
|
41
|
+
*
|
|
42
|
+
* // Explicit adapter request
|
|
43
|
+
* const adapter = router.select({
|
|
44
|
+
* to: '0x...',
|
|
45
|
+
* amount: '100',
|
|
46
|
+
* metadata: { preferredAdapter: 'standard' }
|
|
47
|
+
* });
|
|
48
|
+
* ```
|
|
49
|
+
*/
|
|
50
|
+
class AdapterRouter {
|
|
51
|
+
/**
|
|
52
|
+
* Creates a new AdapterRouter instance.
|
|
53
|
+
*
|
|
54
|
+
* @param registry - AdapterRegistry containing available adapters
|
|
55
|
+
* @param erc8004Bridge - Optional ERC-8004 bridge for agent ID resolution
|
|
56
|
+
*/
|
|
57
|
+
constructor(registry, erc8004Bridge) {
|
|
58
|
+
this.registry = registry;
|
|
59
|
+
this.erc8004Bridge = erc8004Bridge;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Set the ERC-8004 bridge for agent ID resolution.
|
|
63
|
+
*
|
|
64
|
+
* @param bridge - ERC8004Bridge instance
|
|
65
|
+
*/
|
|
66
|
+
setERC8004Bridge(bridge) {
|
|
67
|
+
this.erc8004Bridge = bridge;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Select the best adapter for the given payment parameters.
|
|
71
|
+
*
|
|
72
|
+
* @param params - Unified payment parameters
|
|
73
|
+
* @returns The selected adapter
|
|
74
|
+
* @throws {ValidationError} If params are invalid
|
|
75
|
+
* @throws {Error} If no suitable adapter found
|
|
76
|
+
*
|
|
77
|
+
* @example
|
|
78
|
+
* ```typescript
|
|
79
|
+
* const adapter = router.select({
|
|
80
|
+
* to: '0xProvider...',
|
|
81
|
+
* amount: '100',
|
|
82
|
+
* });
|
|
83
|
+
* const result = await adapter.pay(params);
|
|
84
|
+
* ```
|
|
85
|
+
*/
|
|
86
|
+
select(params) {
|
|
87
|
+
// GUARD-RAIL: Validate all params first
|
|
88
|
+
this.validateParams(params);
|
|
89
|
+
const metadata = params.metadata || {};
|
|
90
|
+
// 1. Explicit adapter requested
|
|
91
|
+
if (metadata.preferredAdapter) {
|
|
92
|
+
const adapter = this.registry.get(metadata.preferredAdapter);
|
|
93
|
+
if (!adapter) {
|
|
94
|
+
throw new Error(`Preferred adapter '${metadata.preferredAdapter}' not found. ` +
|
|
95
|
+
`Available adapters: ${this.registry.getIds().join(', ') || 'none'}`);
|
|
96
|
+
}
|
|
97
|
+
// Verify adapter can handle these params
|
|
98
|
+
adapter.validate(params);
|
|
99
|
+
return adapter;
|
|
100
|
+
}
|
|
101
|
+
// 2. Escrow/dispute required -> STRICT enforcement
|
|
102
|
+
if (metadata.requiresEscrow || metadata.requiresDispute) {
|
|
103
|
+
// First try standard adapter
|
|
104
|
+
const standard = this.registry.get('standard');
|
|
105
|
+
if (standard && standard.canHandle(params)) {
|
|
106
|
+
return standard;
|
|
107
|
+
}
|
|
108
|
+
// Find any adapter that meets the capability requirements
|
|
109
|
+
const compatibleAdapters = this.registry.getByPriority().filter((adapter) => {
|
|
110
|
+
const meta = adapter.metadata;
|
|
111
|
+
const meetsEscrow = !metadata.requiresEscrow || meta.usesEscrow;
|
|
112
|
+
const meetsDispute = !metadata.requiresDispute || meta.supportsDisputes;
|
|
113
|
+
return meetsEscrow && meetsDispute && adapter.canHandle(params);
|
|
114
|
+
});
|
|
115
|
+
if (compatibleAdapters.length > 0) {
|
|
116
|
+
return compatibleAdapters[0];
|
|
117
|
+
}
|
|
118
|
+
// STRICT: No compatible adapter found - throw error instead of falling through
|
|
119
|
+
const requirements = [];
|
|
120
|
+
if (metadata.requiresEscrow)
|
|
121
|
+
requirements.push('escrow');
|
|
122
|
+
if (metadata.requiresDispute)
|
|
123
|
+
requirements.push('dispute resolution');
|
|
124
|
+
throw new Error(`No adapter found that supports required capabilities: ${requirements.join(', ')}. ` +
|
|
125
|
+
`Available adapters: ${this.registry.getIds().join(', ') || 'none'}`);
|
|
126
|
+
}
|
|
127
|
+
// 3. HTTP endpoint -> x402 (when registered)
|
|
128
|
+
// NOTE: X402Adapter is ATOMIC (usesEscrow: false) - instant payment, no escrow.
|
|
129
|
+
// Route HTTPS endpoints to x402 for fire-and-forget API payments.
|
|
130
|
+
// If caller needs escrow protection, they should use ACTP with address, not URL.
|
|
131
|
+
if (this.isHttpEndpoint(params.to)) {
|
|
132
|
+
const x402 = this.registry.get('x402');
|
|
133
|
+
if (x402 && x402.canHandle(params)) {
|
|
134
|
+
return x402;
|
|
135
|
+
}
|
|
136
|
+
// HTTP endpoints without x402 adapter will fall through
|
|
137
|
+
// and likely fail with basic/standard adapters
|
|
138
|
+
}
|
|
139
|
+
// 4. ERC-8004 identity -> erc8004 (when registered)
|
|
140
|
+
if (metadata.identity?.type === 'erc8004') {
|
|
141
|
+
const erc8004 = this.registry.get('erc8004');
|
|
142
|
+
if (erc8004 && erc8004.canHandle(params)) {
|
|
143
|
+
return erc8004;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
// 5. Find first adapter that can handle it (by priority)
|
|
147
|
+
for (const adapter of this.registry.getByPriority()) {
|
|
148
|
+
if (adapter.canHandle(params)) {
|
|
149
|
+
return adapter;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
// 6. Default to basic as last resort
|
|
153
|
+
const basic = this.registry.get('basic');
|
|
154
|
+
if (basic) {
|
|
155
|
+
// Try to use basic even if canHandle returned false
|
|
156
|
+
// Let it fail with a proper error message during pay()
|
|
157
|
+
return basic;
|
|
158
|
+
}
|
|
159
|
+
throw new Error(`No suitable adapter found for params. ` +
|
|
160
|
+
`Available adapters: ${this.registry.getIds().join(', ') || 'none'}`);
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Validate payment parameters with Zod schema.
|
|
164
|
+
*
|
|
165
|
+
* GUARD-RAIL: Performs strict validation before any adapter selection.
|
|
166
|
+
*
|
|
167
|
+
* @param params - Parameters to validate
|
|
168
|
+
* @throws {ValidationError} If params are invalid
|
|
169
|
+
*/
|
|
170
|
+
validateParams(params) {
|
|
171
|
+
const result = (0, adapter_1.safeValidatePayParams)(params);
|
|
172
|
+
if (!result.success) {
|
|
173
|
+
const issues = result.error.issues
|
|
174
|
+
.map((i) => `${i.path.join('.')}: ${i.message}`)
|
|
175
|
+
.join('; ');
|
|
176
|
+
throw new BaseAdapter_1.ValidationError(`Invalid payment params: ${issues}`);
|
|
177
|
+
}
|
|
178
|
+
// Additional security checks
|
|
179
|
+
// Check for path traversal attempts in 'to' field
|
|
180
|
+
if (typeof params.to === 'string') {
|
|
181
|
+
if (params.to.includes('..')) {
|
|
182
|
+
throw new BaseAdapter_1.ValidationError('Invalid recipient: path traversal characters not allowed');
|
|
183
|
+
}
|
|
184
|
+
// Check for script injection attempts
|
|
185
|
+
if (params.to.includes('<') || params.to.includes('>')) {
|
|
186
|
+
throw new BaseAdapter_1.ValidationError('Invalid recipient: HTML/script characters not allowed');
|
|
187
|
+
}
|
|
188
|
+
// Check for null bytes
|
|
189
|
+
if (params.to.includes('\0')) {
|
|
190
|
+
throw new BaseAdapter_1.ValidationError('Invalid recipient: null bytes not allowed');
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
// Validate description if provided
|
|
194
|
+
if (params.description) {
|
|
195
|
+
if (params.description.length > 1000) {
|
|
196
|
+
throw new BaseAdapter_1.ValidationError('Description too long: maximum 1000 characters');
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* Check if a string is an HTTP/HTTPS endpoint.
|
|
202
|
+
*
|
|
203
|
+
* @param to - Recipient string to check
|
|
204
|
+
* @returns True if it's an HTTP endpoint
|
|
205
|
+
*/
|
|
206
|
+
isHttpEndpoint(to) {
|
|
207
|
+
try {
|
|
208
|
+
const url = new URL(to);
|
|
209
|
+
return url.protocol === 'http:' || url.protocol === 'https:';
|
|
210
|
+
}
|
|
211
|
+
catch {
|
|
212
|
+
return false;
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* Get all adapters that can handle the given params.
|
|
217
|
+
*
|
|
218
|
+
* Useful for debugging or letting users choose from multiple options.
|
|
219
|
+
*
|
|
220
|
+
* @param params - Payment parameters
|
|
221
|
+
* @returns Array of adapters that can handle params
|
|
222
|
+
*/
|
|
223
|
+
getCompatibleAdapters(params) {
|
|
224
|
+
this.validateParams(params);
|
|
225
|
+
return this.registry.getAll().filter((adapter) => {
|
|
226
|
+
try {
|
|
227
|
+
return adapter.canHandle(params);
|
|
228
|
+
}
|
|
229
|
+
catch {
|
|
230
|
+
return false;
|
|
231
|
+
}
|
|
232
|
+
});
|
|
233
|
+
}
|
|
234
|
+
/**
|
|
235
|
+
* Check if any adapter can handle the given params.
|
|
236
|
+
*
|
|
237
|
+
* @param params - Payment parameters
|
|
238
|
+
* @returns True if at least one adapter can handle
|
|
239
|
+
*/
|
|
240
|
+
canHandle(params) {
|
|
241
|
+
try {
|
|
242
|
+
this.validateParams(params);
|
|
243
|
+
return this.getCompatibleAdapters(params).length > 0;
|
|
244
|
+
}
|
|
245
|
+
catch {
|
|
246
|
+
return false;
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
// ==========================================================================
|
|
250
|
+
// ERC-8004 Agent ID Resolution
|
|
251
|
+
// ==========================================================================
|
|
252
|
+
/**
|
|
253
|
+
* Select adapter AND resolve ERC-8004 agent IDs.
|
|
254
|
+
*
|
|
255
|
+
* This is the recommended method for payment flows. It:
|
|
256
|
+
* 1. Checks if `to` is an ERC-8004 agent ID (numeric string)
|
|
257
|
+
* 2. If so, resolves it to a wallet address via ERC8004Bridge
|
|
258
|
+
* 3. Stores the original agentId in erc8004AgentId field
|
|
259
|
+
* 4. Selects the appropriate adapter
|
|
260
|
+
*
|
|
261
|
+
* @param params - Unified payment parameters
|
|
262
|
+
* @returns Selection result with resolved params
|
|
263
|
+
* @throws {ValidationError} If params invalid or agent not found
|
|
264
|
+
*
|
|
265
|
+
* @example
|
|
266
|
+
* ```typescript
|
|
267
|
+
* const { adapter, resolvedParams } = await router.selectAndResolve({
|
|
268
|
+
* to: '12345', // ERC-8004 agent ID
|
|
269
|
+
* amount: '100',
|
|
270
|
+
* });
|
|
271
|
+
*
|
|
272
|
+
* // resolvedParams.to is now the wallet address
|
|
273
|
+
* // resolvedParams.erc8004AgentId is '12345'
|
|
274
|
+
* const result = await adapter.pay(resolvedParams);
|
|
275
|
+
* ```
|
|
276
|
+
*/
|
|
277
|
+
async selectAndResolve(params) {
|
|
278
|
+
// Check if 'to' is an ERC-8004 agent ID
|
|
279
|
+
if (this.isERC8004AgentId(params.to)) {
|
|
280
|
+
if (!this.erc8004Bridge) {
|
|
281
|
+
throw new BaseAdapter_1.ValidationError(`Cannot resolve ERC-8004 agent ID '${params.to}': ` +
|
|
282
|
+
'ERC-8004 resolution requires testnet or mainnet mode. ' +
|
|
283
|
+
'Use a wallet address (0x...) in mock mode, or switch to testnet/mainnet.');
|
|
284
|
+
}
|
|
285
|
+
try {
|
|
286
|
+
// Resolve agent ID to wallet address
|
|
287
|
+
const wallet = await this.erc8004Bridge.getAgentWallet(params.to);
|
|
288
|
+
// Create resolved params with wallet and stored agentId
|
|
289
|
+
const resolvedParams = {
|
|
290
|
+
...params,
|
|
291
|
+
to: wallet,
|
|
292
|
+
erc8004AgentId: params.to,
|
|
293
|
+
};
|
|
294
|
+
// Select adapter for resolved params
|
|
295
|
+
const adapter = this.select(resolvedParams);
|
|
296
|
+
return {
|
|
297
|
+
adapter,
|
|
298
|
+
resolvedParams,
|
|
299
|
+
wasAgentIdResolved: true,
|
|
300
|
+
};
|
|
301
|
+
}
|
|
302
|
+
catch (error) {
|
|
303
|
+
// Re-throw with clearer message
|
|
304
|
+
const errorMsg = error instanceof Error ? error.message : String(error);
|
|
305
|
+
throw new BaseAdapter_1.ValidationError(`Failed to resolve ERC-8004 agent '${params.to}': ${errorMsg}`);
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
// Not an agent ID - proceed normally
|
|
309
|
+
const adapter = this.select(params);
|
|
310
|
+
return {
|
|
311
|
+
adapter,
|
|
312
|
+
resolvedParams: params,
|
|
313
|
+
wasAgentIdResolved: false,
|
|
314
|
+
};
|
|
315
|
+
}
|
|
316
|
+
/**
|
|
317
|
+
* Check if a string looks like an ERC-8004 agent ID.
|
|
318
|
+
*
|
|
319
|
+
* Agent IDs are numeric strings (uint256) that are:
|
|
320
|
+
* - NOT Ethereum addresses (0x-prefixed)
|
|
321
|
+
* - NOT URLs (http/https)
|
|
322
|
+
* - Valid as BigInt in range [0, 2^256)
|
|
323
|
+
*
|
|
324
|
+
* @param to - Recipient string to check
|
|
325
|
+
* @returns True if it looks like an agent ID
|
|
326
|
+
*/
|
|
327
|
+
isERC8004AgentId(to) {
|
|
328
|
+
if (!to || typeof to !== 'string') {
|
|
329
|
+
return false;
|
|
330
|
+
}
|
|
331
|
+
// Not an Ethereum address
|
|
332
|
+
if (to.startsWith('0x')) {
|
|
333
|
+
return false;
|
|
334
|
+
}
|
|
335
|
+
// Not a URL
|
|
336
|
+
if (to.includes('://') || to.startsWith('http')) {
|
|
337
|
+
return false;
|
|
338
|
+
}
|
|
339
|
+
// Must be a valid uint256
|
|
340
|
+
try {
|
|
341
|
+
const bn = BigInt(to);
|
|
342
|
+
return bn >= 0n && bn < 2n ** 256n;
|
|
343
|
+
}
|
|
344
|
+
catch {
|
|
345
|
+
return false;
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
exports.AdapterRouter = AdapterRouter;
|
|
350
|
+
//# sourceMappingURL=AdapterRouter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AdapterRouter.js","sourceRoot":"","sources":["../../src/adapters/AdapterRouter.ts"],"names":[],"mappings":"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"}
|
|
@@ -227,5 +227,22 @@ export declare abstract class BaseAdapter {
|
|
|
227
227
|
* ```
|
|
228
228
|
*/
|
|
229
229
|
protected formatAmount(amount: bigint | string): string;
|
|
230
|
+
/**
|
|
231
|
+
* Encode dispute window as ABI-encoded proof for DELIVERED transition.
|
|
232
|
+
*
|
|
233
|
+
* This helper centralizes proof encoding to prevent drift between
|
|
234
|
+
* adapters and ensures consistency with on-chain expectations.
|
|
235
|
+
*
|
|
236
|
+
* @param disputeWindowSeconds - Dispute window in seconds
|
|
237
|
+
* @returns ABI-encoded bytes32 proof
|
|
238
|
+
*
|
|
239
|
+
* @example
|
|
240
|
+
* ```typescript
|
|
241
|
+
* // Encode 2-hour dispute window
|
|
242
|
+
* const proof = this.encodeDisputeWindowProof(7200);
|
|
243
|
+
* await runtime.transitionState(txId, 'DELIVERED', proof);
|
|
244
|
+
* ```
|
|
245
|
+
*/
|
|
246
|
+
protected encodeDisputeWindowProof(disputeWindowSeconds: number): string;
|
|
230
247
|
}
|
|
231
248
|
//# sourceMappingURL=BaseAdapter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseAdapter.d.ts","sourceRoot":"","sources":["../../src/adapters/BaseAdapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAMH;;;GAGG;AACH,eAAO,MAAM,8BAA8B,SAAS,CAAC;AAErD;;;;;;GAMG;AACH,eAAO,MAAM,0BAA0B,OAAO,CAAC;AAE/C;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B,QAAiB,CAAC;AAEzD;;;GAGG;AACH,eAAO,MAAM,wBAAwB,QAAQ,CAAC;AAE9C;;;GAGG;AACH,eAAO,MAAM,cAAc,SAAU,CAAC;AAEtC;;;GAGG;AACH,eAAO,MAAM,kBAAkB,QAAQ,CAAC;AAExC;;;GAGG;AACH,eAAO,MAAM,iBAAiB,OAAO,CAAC;AAEtC;;;;;;;;;;GAUG;AACH,qBAAa,eAAgB,SAAQ,KAAK;gBAC5B,OAAO,EAAE,MAAM;CAI5B;AAED;;;;;;;;;;GAUG;AACH,8BAAsB,WAAW;IAMnB,SAAS,CAAC,gBAAgB,EAAE,MAAM;IAL9C;;;;OAIG;gBACmB,gBAAgB,EAAE,MAAM;IAE9C;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,SAAS,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM;IAqDtD;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,SAAS,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM;IAiCrE;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,SAAS,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM;IAwCjF;;;;;;;;;;;;;;;;;;OAkBG;IACH,SAAS,CAAC,qBAAqB,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM;IAsB/D;;;;;;;;;;;;;;;OAeG;IACH,SAAS,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM;IAgCnE;;;;;;;;;OASG;IACH,SAAS,CAAC,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM;IAkCzE;;;;;;;;;;;;;;;OAeG;IACH,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM;
|
|
1
|
+
{"version":3,"file":"BaseAdapter.d.ts","sourceRoot":"","sources":["../../src/adapters/BaseAdapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAMH;;;GAGG;AACH,eAAO,MAAM,8BAA8B,SAAS,CAAC;AAErD;;;;;;GAMG;AACH,eAAO,MAAM,0BAA0B,OAAO,CAAC;AAE/C;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B,QAAiB,CAAC;AAEzD;;;GAGG;AACH,eAAO,MAAM,wBAAwB,QAAQ,CAAC;AAE9C;;;GAGG;AACH,eAAO,MAAM,cAAc,SAAU,CAAC;AAEtC;;;GAGG;AACH,eAAO,MAAM,kBAAkB,QAAQ,CAAC;AAExC;;;GAGG;AACH,eAAO,MAAM,iBAAiB,OAAO,CAAC;AAEtC;;;;;;;;;;GAUG;AACH,qBAAa,eAAgB,SAAQ,KAAK;gBAC5B,OAAO,EAAE,MAAM;CAI5B;AAED;;;;;;;;;;GAUG;AACH,8BAAsB,WAAW;IAMnB,SAAS,CAAC,gBAAgB,EAAE,MAAM;IAL9C;;;;OAIG;gBACmB,gBAAgB,EAAE,MAAM;IAE9C;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,SAAS,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM;IAqDtD;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,SAAS,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM;IAiCrE;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,SAAS,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM;IAwCjF;;;;;;;;;;;;;;;;;;OAkBG;IACH,SAAS,CAAC,qBAAqB,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM;IAsB/D;;;;;;;;;;;;;;;OAeG;IACH,SAAS,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM;IAgCnE;;;;;;;;;OASG;IACH,SAAS,CAAC,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM;IAkCzE;;;;;;;;;;;;;;;OAeG;IACH,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM;IAqBvD;;;;;;;;;;;;;;;OAeG;IACH,SAAS,CAAC,wBAAwB,CAAC,oBAAoB,EAAE,MAAM,GAAG,MAAM;CAQzE"}
|
|
@@ -388,6 +388,27 @@ class BaseAdapter {
|
|
|
388
388
|
const formattedDecimal = roundedCents.toString().padStart(2, '0');
|
|
389
389
|
return `${wholePart}.${formattedDecimal} USDC`;
|
|
390
390
|
}
|
|
391
|
+
/**
|
|
392
|
+
* Encode dispute window as ABI-encoded proof for DELIVERED transition.
|
|
393
|
+
*
|
|
394
|
+
* This helper centralizes proof encoding to prevent drift between
|
|
395
|
+
* adapters and ensures consistency with on-chain expectations.
|
|
396
|
+
*
|
|
397
|
+
* @param disputeWindowSeconds - Dispute window in seconds
|
|
398
|
+
* @returns ABI-encoded bytes32 proof
|
|
399
|
+
*
|
|
400
|
+
* @example
|
|
401
|
+
* ```typescript
|
|
402
|
+
* // Encode 2-hour dispute window
|
|
403
|
+
* const proof = this.encodeDisputeWindowProof(7200);
|
|
404
|
+
* await runtime.transitionState(txId, 'DELIVERED', proof);
|
|
405
|
+
* ```
|
|
406
|
+
*/
|
|
407
|
+
encodeDisputeWindowProof(disputeWindowSeconds) {
|
|
408
|
+
// Lazy import to avoid circular dependency issues
|
|
409
|
+
const { ethers } = require('ethers');
|
|
410
|
+
return ethers.AbiCoder.defaultAbiCoder().encode(['uint256'], [disputeWindowSeconds]);
|
|
411
|
+
}
|
|
391
412
|
}
|
|
392
413
|
exports.BaseAdapter = BaseAdapter;
|
|
393
414
|
//# sourceMappingURL=BaseAdapter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseAdapter.js","sourceRoot":"","sources":["../../src/adapters/BaseAdapter.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"BaseAdapter.js","sourceRoot":"","sources":["../../src/adapters/BaseAdapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,6 +15,8 @@
|
|
|
15
15
|
import { BaseAdapter } from './BaseAdapter';
|
|
16
16
|
import { IACTPRuntime } from '../runtime/IACTPRuntime';
|
|
17
17
|
import { EASHelper } from '../protocol/EASHelper';
|
|
18
|
+
import { IAdapter, TransactionStatus } from './IAdapter';
|
|
19
|
+
import { AdapterMetadata, UnifiedPayParams, UnifiedPayResult } from '../types/adapter';
|
|
18
20
|
/**
|
|
19
21
|
* Parameters for creating a simple payment.
|
|
20
22
|
*
|
|
@@ -58,6 +60,8 @@ export interface BasicPayResult {
|
|
|
58
60
|
*
|
|
59
61
|
* All complexity is hidden behind smart defaults.
|
|
60
62
|
*
|
|
63
|
+
* Implements IAdapter for router integration.
|
|
64
|
+
*
|
|
61
65
|
* @example
|
|
62
66
|
* ```typescript
|
|
63
67
|
* const client = await ACTPClient.create({ mode: 'mock' });
|
|
@@ -77,9 +81,13 @@ export interface BasicPayResult {
|
|
|
77
81
|
* }
|
|
78
82
|
* ```
|
|
79
83
|
*/
|
|
80
|
-
export declare class BasicAdapter extends BaseAdapter {
|
|
84
|
+
export declare class BasicAdapter extends BaseAdapter implements IAdapter {
|
|
81
85
|
private runtime;
|
|
82
86
|
private easHelper?;
|
|
87
|
+
/**
|
|
88
|
+
* Adapter metadata for router selection.
|
|
89
|
+
*/
|
|
90
|
+
readonly metadata: AdapterMetadata;
|
|
83
91
|
/**
|
|
84
92
|
* Creates a new BasicAdapter instance.
|
|
85
93
|
*
|
|
@@ -106,19 +114,20 @@ export declare class BasicAdapter extends BaseAdapter {
|
|
|
106
114
|
* - Cannot pay yourself
|
|
107
115
|
*
|
|
108
116
|
* @param params - Payment parameters
|
|
117
|
+
* @param agentId - Optional ERC-8004 agent ID (for reputation reporting)
|
|
109
118
|
* @returns User-friendly payment result
|
|
110
119
|
* @throws {ValidationError} If inputs are invalid
|
|
111
120
|
*
|
|
112
121
|
* @example
|
|
113
122
|
* ```typescript
|
|
114
|
-
* const result = await adapter.
|
|
123
|
+
* const result = await adapter.payBasic({
|
|
115
124
|
* to: '0xProvider123',
|
|
116
125
|
* amount: '100.50',
|
|
117
126
|
* deadline: '+7d', // Optional: 7 days from now
|
|
118
127
|
* });
|
|
119
128
|
* ```
|
|
120
129
|
*/
|
|
121
|
-
|
|
130
|
+
payBasic(params: BasicPayParams, agentId?: string): Promise<BasicPayResult>;
|
|
122
131
|
/**
|
|
123
132
|
* Check payment status by transaction ID.
|
|
124
133
|
*
|
|
@@ -148,5 +157,65 @@ export declare class BasicAdapter extends BaseAdapter {
|
|
|
148
157
|
canComplete: boolean;
|
|
149
158
|
canDispute: boolean;
|
|
150
159
|
}>;
|
|
160
|
+
/**
|
|
161
|
+
* Execute payment through this adapter.
|
|
162
|
+
*
|
|
163
|
+
* This is the IAdapter-compatible pay() method that returns UnifiedPayResult.
|
|
164
|
+
* For the legacy BasicPayResult API, use payBasic().
|
|
165
|
+
*
|
|
166
|
+
* @param params - Unified payment parameters
|
|
167
|
+
* @returns Promise resolving to unified payment result
|
|
168
|
+
*/
|
|
169
|
+
pay(params: UnifiedPayParams): Promise<UnifiedPayResult>;
|
|
170
|
+
/**
|
|
171
|
+
* Check if this adapter can handle the given parameters.
|
|
172
|
+
*
|
|
173
|
+
* BasicAdapter can handle any Ethereum address recipient.
|
|
174
|
+
*
|
|
175
|
+
* @param params - Payment parameters to check
|
|
176
|
+
* @returns True if params have a valid Ethereum address
|
|
177
|
+
*/
|
|
178
|
+
canHandle(params: UnifiedPayParams): boolean;
|
|
179
|
+
/**
|
|
180
|
+
* Validate parameters before execution.
|
|
181
|
+
*
|
|
182
|
+
* @param params - Parameters to validate
|
|
183
|
+
* @throws {ValidationError} If params are invalid
|
|
184
|
+
*/
|
|
185
|
+
validate(params: UnifiedPayParams): void;
|
|
186
|
+
/**
|
|
187
|
+
* Get transaction status by ID.
|
|
188
|
+
*
|
|
189
|
+
* Returns TransactionStatus with action hints.
|
|
190
|
+
*
|
|
191
|
+
* @param txId - Transaction ID
|
|
192
|
+
* @returns Promise resolving to transaction status
|
|
193
|
+
*/
|
|
194
|
+
getStatus(txId: string): Promise<TransactionStatus>;
|
|
195
|
+
/**
|
|
196
|
+
* Transition to IN_PROGRESS state (provider starts work).
|
|
197
|
+
*
|
|
198
|
+
* @param txId - Transaction ID
|
|
199
|
+
*/
|
|
200
|
+
startWork(txId: string): Promise<void>;
|
|
201
|
+
/**
|
|
202
|
+
* Transition to DELIVERED state (provider completes work).
|
|
203
|
+
*
|
|
204
|
+
* When no proof is provided, fetches the transaction's actual disputeWindow
|
|
205
|
+
* and encodes it as proof. This ensures consistency with the dispute window
|
|
206
|
+
* specified at transaction creation time.
|
|
207
|
+
*
|
|
208
|
+
* @param txId - Transaction ID
|
|
209
|
+
* @param proof - Optional delivery proof (ABI-encoded dispute window).
|
|
210
|
+
* If not provided, uses transaction's disputeWindow.
|
|
211
|
+
*/
|
|
212
|
+
deliver(txId: string, proof?: string): Promise<void>;
|
|
213
|
+
/**
|
|
214
|
+
* Release escrow funds (EXPLICIT settlement).
|
|
215
|
+
*
|
|
216
|
+
* @param escrowId - Escrow ID (usually same as txId)
|
|
217
|
+
* @param attestationUID - Optional attestation UID for verification
|
|
218
|
+
*/
|
|
219
|
+
release(escrowId: string, attestationUID?: string): Promise<void>;
|
|
151
220
|
}
|
|
152
221
|
//# sourceMappingURL=BasicAdapter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BasicAdapter.d.ts","sourceRoot":"","sources":["../../src/adapters/BasicAdapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,WAAW,EAAmB,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"BasicAdapter.d.ts","sourceRoot":"","sources":["../../src/adapters/BasicAdapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,WAAW,EAAmB,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,kBAAkB,CAAC;AAE1B;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,mCAAmC;IACnC,EAAE,EAAE,MAAM,CAAC;IAEX,2EAA2E;IAC3E,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IAExB,uFAAuF;IACvF,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAE3B,uEAAuE;IACvE,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,0CAA0C;IAC1C,IAAI,EAAE,MAAM,CAAC;IAEb,uBAAuB;IACvB,QAAQ,EAAE,MAAM,CAAC;IAEjB,iCAAiC;IACjC,SAAS,EAAE,MAAM,CAAC;IAElB,2DAA2D;IAC3D,MAAM,EAAE,MAAM,CAAC;IAEf,qCAAqC;IACrC,QAAQ,EAAE,MAAM,CAAC;IAEjB,wBAAwB;IACxB,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,qBAAa,YAAa,SAAQ,WAAY,YAAW,QAAQ;IAqB7D,OAAO,CAAC,OAAO;IAEf,OAAO,CAAC,SAAS,CAAC;IAtBpB;;OAEG;IACH,SAAgB,QAAQ,EAAE,eAAe,CAQvC;IACF;;;;;;OAMG;gBAEO,OAAO,EAAE,YAAY,EAC7B,gBAAgB,EAAE,MAAM,EAChB,SAAS,CAAC,uBAAW;IAK/B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACG,QAAQ,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IA6DjF;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACG,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QACvC,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,OAAO,CAAC;QACnB,WAAW,EAAE,OAAO,CAAC;QACrB,UAAU,EAAE,OAAO,CAAC;KACrB,CAAC;IAqBF;;;;;;;;OAQG;IACG,GAAG,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA+B9D;;;;;;;OAOG;IACH,SAAS,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO;IAU5C;;;;;OAKG;IACH,QAAQ,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI;IAkBxC;;;;;;;OAOG;IACG,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAkCzD;;;;OAIG;IACG,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5C;;;;;;;;;;OAUG;IACG,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgB1D;;;;;OAKG;IACG,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAGxE"}
|