@agirails/sdk 2.5.3 → 2.5.5
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 +18 -0
- package/dist/ACTPClient.d.ts.map +1 -1
- package/dist/ACTPClient.js +72 -23
- package/dist/ACTPClient.js.map +1 -1
- package/dist/adapters/BasicAdapter.d.ts +15 -0
- package/dist/adapters/BasicAdapter.d.ts.map +1 -1
- package/dist/adapters/BasicAdapter.js +33 -4
- package/dist/adapters/BasicAdapter.js.map +1 -1
- package/dist/adapters/StandardAdapter.d.ts +20 -3
- package/dist/adapters/StandardAdapter.d.ts.map +1 -1
- package/dist/adapters/StandardAdapter.js +90 -12
- package/dist/adapters/StandardAdapter.js.map +1 -1
- package/dist/cli/commands/publish.js +16 -4
- package/dist/cli/commands/publish.js.map +1 -1
- package/dist/cli/commands/register.js +16 -4
- package/dist/cli/commands/register.js.map +1 -1
- package/dist/cli/commands/tx.js +31 -3
- package/dist/cli/commands/tx.js.map +1 -1
- package/dist/config/networks.d.ts +10 -2
- package/dist/config/networks.d.ts.map +1 -1
- package/dist/config/networks.js +31 -22
- package/dist/config/networks.js.map +1 -1
- package/dist/level0/request.d.ts.map +1 -1
- package/dist/level0/request.js +2 -1
- package/dist/level0/request.js.map +1 -1
- package/dist/runtime/BlockchainRuntime.d.ts.map +1 -1
- package/dist/runtime/BlockchainRuntime.js +11 -5
- package/dist/runtime/BlockchainRuntime.js.map +1 -1
- package/dist/utils/IPFSClient.d.ts +3 -1
- package/dist/utils/IPFSClient.d.ts.map +1 -1
- package/dist/utils/IPFSClient.js +27 -7
- package/dist/utils/IPFSClient.js.map +1 -1
- package/dist/wallet/AutoWalletProvider.d.ts +11 -1
- package/dist/wallet/AutoWalletProvider.d.ts.map +1 -1
- package/dist/wallet/AutoWalletProvider.js +84 -19
- package/dist/wallet/AutoWalletProvider.js.map +1 -1
- package/dist/wallet/IWalletProvider.d.ts +34 -0
- package/dist/wallet/IWalletProvider.d.ts.map +1 -1
- package/dist/wallet/SmartWalletRouter.d.ts +128 -0
- package/dist/wallet/SmartWalletRouter.d.ts.map +1 -0
- package/dist/wallet/SmartWalletRouter.js +248 -0
- package/dist/wallet/SmartWalletRouter.js.map +1 -0
- package/dist/wallet/aa/DualNonceManager.d.ts +26 -1
- package/dist/wallet/aa/DualNonceManager.d.ts.map +1 -1
- package/dist/wallet/aa/DualNonceManager.js +140 -6
- package/dist/wallet/aa/DualNonceManager.js.map +1 -1
- package/package.json +3 -6
- package/src/ACTPClient.ts +0 -1579
- package/src/abi/ACTPKernel.json +0 -1356
- package/src/abi/AgentRegistry.json +0 -915
- package/src/abi/ERC20.json +0 -40
- package/src/abi/EscrowVault.json +0 -134
- package/src/abi/IdentityRegistry.json +0 -316
- package/src/adapters/AdapterRegistry.ts +0 -173
- package/src/adapters/AdapterRouter.ts +0 -416
- package/src/adapters/BaseAdapter.ts +0 -498
- package/src/adapters/BasicAdapter.ts +0 -514
- package/src/adapters/IAdapter.ts +0 -292
- package/src/adapters/StandardAdapter.ts +0 -555
- package/src/adapters/X402Adapter.ts +0 -731
- package/src/adapters/index.ts +0 -60
- package/src/builders/DeliveryProofBuilder.ts +0 -327
- package/src/builders/QuoteBuilder.ts +0 -483
- package/src/builders/index.ts +0 -17
- package/src/cli/commands/balance.ts +0 -110
- package/src/cli/commands/batch.ts +0 -487
- package/src/cli/commands/config.ts +0 -231
- package/src/cli/commands/deploy-check.ts +0 -364
- package/src/cli/commands/deploy-env.ts +0 -120
- package/src/cli/commands/diff.ts +0 -141
- package/src/cli/commands/init.ts +0 -469
- package/src/cli/commands/mint.ts +0 -116
- package/src/cli/commands/pay.ts +0 -113
- package/src/cli/commands/publish.ts +0 -475
- package/src/cli/commands/pull.ts +0 -124
- package/src/cli/commands/register.ts +0 -247
- package/src/cli/commands/simulate.ts +0 -345
- package/src/cli/commands/time.ts +0 -302
- package/src/cli/commands/tx.ts +0 -448
- package/src/cli/commands/watch.ts +0 -211
- package/src/cli/index.ts +0 -134
- package/src/cli/utils/client.ts +0 -252
- package/src/cli/utils/config.ts +0 -389
- package/src/cli/utils/output.ts +0 -465
- package/src/cli/utils/wallet.ts +0 -109
- package/src/config/agirailsmd.ts +0 -262
- package/src/config/networks.ts +0 -275
- package/src/config/pendingPublish.ts +0 -237
- package/src/config/publishPipeline.ts +0 -359
- package/src/config/syncOperations.ts +0 -279
- package/src/erc8004/ERC8004Bridge.ts +0 -462
- package/src/erc8004/ReputationReporter.ts +0 -468
- package/src/erc8004/index.ts +0 -61
- package/src/errors/index.ts +0 -427
- package/src/index.ts +0 -364
- package/src/level0/Provider.ts +0 -117
- package/src/level0/ServiceDirectory.ts +0 -131
- package/src/level0/index.ts +0 -10
- package/src/level0/provide.ts +0 -132
- package/src/level0/request.ts +0 -432
- package/src/level1/Agent.ts +0 -1426
- package/src/level1/index.ts +0 -10
- package/src/level1/pricing/PriceCalculator.ts +0 -255
- package/src/level1/pricing/PricingStrategy.ts +0 -198
- package/src/level1/types/Job.ts +0 -179
- package/src/level1/types/Options.ts +0 -291
- package/src/level1/types/index.ts +0 -8
- package/src/protocol/ACTPKernel.ts +0 -808
- package/src/protocol/AgentRegistry.ts +0 -559
- package/src/protocol/DIDManager.ts +0 -629
- package/src/protocol/DIDResolver.ts +0 -554
- package/src/protocol/EASHelper.ts +0 -378
- package/src/protocol/EscrowVault.ts +0 -255
- package/src/protocol/EventMonitor.ts +0 -204
- package/src/protocol/MessageSigner.ts +0 -510
- package/src/protocol/ProofGenerator.ts +0 -339
- package/src/protocol/QuoteBuilder.ts +0 -15
- package/src/registry/AgentRegistryClient.ts +0 -202
- package/src/runtime/BlockchainRuntime.ts +0 -1015
- package/src/runtime/IACTPRuntime.ts +0 -306
- package/src/runtime/MockRuntime.ts +0 -1298
- package/src/runtime/MockStateManager.ts +0 -577
- package/src/runtime/index.ts +0 -25
- package/src/runtime/types/MockState.ts +0 -237
- package/src/storage/ArchiveBundleBuilder.ts +0 -561
- package/src/storage/ArweaveClient.ts +0 -946
- package/src/storage/FilebaseClient.ts +0 -790
- package/src/storage/index.ts +0 -96
- package/src/storage/types.ts +0 -348
- package/src/types/adapter.ts +0 -310
- package/src/types/agent.ts +0 -79
- package/src/types/did.ts +0 -223
- package/src/types/eip712.ts +0 -175
- package/src/types/erc8004.ts +0 -293
- package/src/types/escrow.ts +0 -27
- package/src/types/index.ts +0 -17
- package/src/types/message.ts +0 -145
- package/src/types/state.ts +0 -87
- package/src/types/transaction.ts +0 -69
- package/src/types/x402.ts +0 -251
- package/src/utils/ErrorRecoveryGuide.ts +0 -676
- package/src/utils/Helpers.ts +0 -688
- package/src/utils/IPFSClient.ts +0 -368
- package/src/utils/Logger.ts +0 -484
- package/src/utils/NonceManager.ts +0 -591
- package/src/utils/RateLimiter.ts +0 -534
- package/src/utils/ReceivedNonceTracker.ts +0 -567
- package/src/utils/SDKLifecycle.ts +0 -416
- package/src/utils/SecureNonce.ts +0 -78
- package/src/utils/Semaphore.ts +0 -276
- package/src/utils/UsedAttestationTracker.ts +0 -385
- package/src/utils/canonicalJson.ts +0 -38
- package/src/utils/circuitBreaker.ts +0 -324
- package/src/utils/computeTypeHash.ts +0 -48
- package/src/utils/fsSafe.ts +0 -80
- package/src/utils/index.ts +0 -80
- package/src/utils/retry.ts +0 -364
- package/src/utils/security.ts +0 -418
- package/src/utils/validation.ts +0 -540
- package/src/wallet/AutoWalletProvider.ts +0 -299
- package/src/wallet/EOAWalletProvider.ts +0 -69
- package/src/wallet/IWalletProvider.ts +0 -135
- package/src/wallet/aa/BundlerClient.ts +0 -274
- package/src/wallet/aa/DualNonceManager.ts +0 -173
- package/src/wallet/aa/PaymasterClient.ts +0 -174
- package/src/wallet/aa/TransactionBatcher.ts +0 -353
- package/src/wallet/aa/UserOpBuilder.ts +0 -246
- package/src/wallet/aa/constants.ts +0 -60
- package/src/wallet/keystore.ts +0 -240
package/src/index.ts
DELETED
|
@@ -1,364 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* AGIRAILS SDK - Agent Commerce Transaction Protocol
|
|
3
|
-
*
|
|
4
|
-
* This is the main entry point for the AGIRAILS SDK.
|
|
5
|
-
* The recommended way to use this SDK is through the ACTPClient class.
|
|
6
|
-
*
|
|
7
|
-
* @packageDocumentation
|
|
8
|
-
*
|
|
9
|
-
* @example
|
|
10
|
-
* ```typescript
|
|
11
|
-
* import { ACTPClient } from '@agirails/sdk';
|
|
12
|
-
*
|
|
13
|
-
* // Create client in mock mode
|
|
14
|
-
* const client = await ACTPClient.create({
|
|
15
|
-
* mode: 'mock',
|
|
16
|
-
* requesterAddress: '0x1234...',
|
|
17
|
-
* });
|
|
18
|
-
*
|
|
19
|
-
* // Mint some tokens for testing
|
|
20
|
-
* await client.mintTokens(client.getAddress(), '10000000000');
|
|
21
|
-
*
|
|
22
|
-
* // Create a payment
|
|
23
|
-
* const result = await client.basic.pay({
|
|
24
|
-
* to: '0xProvider...',
|
|
25
|
-
* amount: '100',
|
|
26
|
-
* });
|
|
27
|
-
*
|
|
28
|
-
* console.log('Transaction ID:', result.txId);
|
|
29
|
-
* ```
|
|
30
|
-
*/
|
|
31
|
-
|
|
32
|
-
// =============================================================================
|
|
33
|
-
// Primary API - ACTPClient
|
|
34
|
-
// =============================================================================
|
|
35
|
-
|
|
36
|
-
export {
|
|
37
|
-
ACTPClient,
|
|
38
|
-
ACTPClientConfig,
|
|
39
|
-
ACTPClientMode,
|
|
40
|
-
ACTPClientInfo,
|
|
41
|
-
} from './ACTPClient';
|
|
42
|
-
|
|
43
|
-
// =============================================================================
|
|
44
|
-
// Adapter Layer - Three-Level API
|
|
45
|
-
// =============================================================================
|
|
46
|
-
|
|
47
|
-
export {
|
|
48
|
-
BaseAdapter,
|
|
49
|
-
DEFAULT_DISPUTE_WINDOW_SECONDS,
|
|
50
|
-
DEFAULT_DEADLINE_SECONDS,
|
|
51
|
-
MIN_AMOUNT_WEI,
|
|
52
|
-
MAX_DEADLINE_HOURS,
|
|
53
|
-
MAX_DEADLINE_DAYS,
|
|
54
|
-
} from './adapters/BaseAdapter';
|
|
55
|
-
|
|
56
|
-
export {
|
|
57
|
-
BasicAdapter,
|
|
58
|
-
BasicPayParams,
|
|
59
|
-
BasicPayResult,
|
|
60
|
-
} from './adapters/BasicAdapter';
|
|
61
|
-
|
|
62
|
-
export {
|
|
63
|
-
StandardAdapter,
|
|
64
|
-
StandardTransactionParams,
|
|
65
|
-
} from './adapters/StandardAdapter';
|
|
66
|
-
|
|
67
|
-
export {
|
|
68
|
-
X402Adapter,
|
|
69
|
-
X402AdapterConfig,
|
|
70
|
-
X402PayParams,
|
|
71
|
-
} from './adapters/X402Adapter';
|
|
72
|
-
|
|
73
|
-
export { AdapterRegistry } from './adapters/AdapterRegistry';
|
|
74
|
-
|
|
75
|
-
export {
|
|
76
|
-
AdapterRouter,
|
|
77
|
-
AdapterSelectionResult,
|
|
78
|
-
} from './adapters/AdapterRouter';
|
|
79
|
-
|
|
80
|
-
export {
|
|
81
|
-
IAdapter,
|
|
82
|
-
TransactionStatus,
|
|
83
|
-
AdapterTransactionState,
|
|
84
|
-
isAdapter,
|
|
85
|
-
} from './adapters/IAdapter';
|
|
86
|
-
|
|
87
|
-
// =============================================================================
|
|
88
|
-
// Runtime Layer - Protocol Implementation
|
|
89
|
-
// =============================================================================
|
|
90
|
-
|
|
91
|
-
// Runtime interfaces
|
|
92
|
-
export {
|
|
93
|
-
IACTPRuntime,
|
|
94
|
-
IMockRuntime,
|
|
95
|
-
CreateTransactionParams,
|
|
96
|
-
} from './runtime/IACTPRuntime';
|
|
97
|
-
|
|
98
|
-
// MockRuntime (for local development)
|
|
99
|
-
export {
|
|
100
|
-
MockRuntime,
|
|
101
|
-
InsufficientBalanceError,
|
|
102
|
-
EscrowNotFoundError,
|
|
103
|
-
DeadlinePassedError,
|
|
104
|
-
ContractPausedError,
|
|
105
|
-
DisputeWindowActiveError,
|
|
106
|
-
} from './runtime/MockRuntime';
|
|
107
|
-
|
|
108
|
-
// MockStateManager (for custom state management)
|
|
109
|
-
export {
|
|
110
|
-
MockStateManager,
|
|
111
|
-
MockStateCorruptedError,
|
|
112
|
-
MockStateVersionError,
|
|
113
|
-
MockStateLockError,
|
|
114
|
-
} from './runtime/MockStateManager';
|
|
115
|
-
|
|
116
|
-
// BlockchainRuntime (for testnet/mainnet)
|
|
117
|
-
export {
|
|
118
|
-
BlockchainRuntime,
|
|
119
|
-
BlockchainRuntimeConfig,
|
|
120
|
-
} from './runtime/BlockchainRuntime';
|
|
121
|
-
|
|
122
|
-
// =============================================================================
|
|
123
|
-
// Type Exports
|
|
124
|
-
// =============================================================================
|
|
125
|
-
|
|
126
|
-
export {
|
|
127
|
-
MockState,
|
|
128
|
-
MockTransaction,
|
|
129
|
-
MockEscrow,
|
|
130
|
-
MockAccount,
|
|
131
|
-
MockBlockchain,
|
|
132
|
-
MockEvent,
|
|
133
|
-
TransactionState,
|
|
134
|
-
TransactionStateValue,
|
|
135
|
-
MOCK_STATE_DEFAULTS,
|
|
136
|
-
} from './runtime/types/MockState';
|
|
137
|
-
|
|
138
|
-
// =============================================================================
|
|
139
|
-
// Protocol Layer (from sdk-js merge)
|
|
140
|
-
// =============================================================================
|
|
141
|
-
|
|
142
|
-
// Protocol modules
|
|
143
|
-
export { ACTPKernel } from './protocol/ACTPKernel';
|
|
144
|
-
export { EscrowVault } from './protocol/EscrowVault';
|
|
145
|
-
export { EventMonitor } from './protocol/EventMonitor';
|
|
146
|
-
export { MessageSigner } from './protocol/MessageSigner';
|
|
147
|
-
export { ProofGenerator, URLValidationConfig } from './protocol/ProofGenerator';
|
|
148
|
-
export { EASHelper, EASConfig } from './protocol/EASHelper';
|
|
149
|
-
export { AgentRegistry } from './protocol/AgentRegistry';
|
|
150
|
-
export { DIDManager } from './protocol/DIDManager';
|
|
151
|
-
export { DIDResolver } from './protocol/DIDResolver';
|
|
152
|
-
|
|
153
|
-
// Builders
|
|
154
|
-
export { QuoteBuilder } from './builders/QuoteBuilder';
|
|
155
|
-
export { DeliveryProofBuilder } from './builders/DeliveryProofBuilder';
|
|
156
|
-
|
|
157
|
-
// Config
|
|
158
|
-
export { getNetwork } from './config/networks';
|
|
159
|
-
export type { NetworkConfig } from './config/networks';
|
|
160
|
-
|
|
161
|
-
// Protocol types
|
|
162
|
-
export type {
|
|
163
|
-
State,
|
|
164
|
-
Transaction,
|
|
165
|
-
CreateTransactionParams as ProtocolCreateParams,
|
|
166
|
-
DisputeResolution,
|
|
167
|
-
EconomicParams,
|
|
168
|
-
} from './types';
|
|
169
|
-
|
|
170
|
-
// Utils
|
|
171
|
-
export { NonceManager, InMemoryNonceManager } from './utils/NonceManager';
|
|
172
|
-
export { IReceivedNonceTracker, InMemoryReceivedNonceTracker } from './utils/ReceivedNonceTracker';
|
|
173
|
-
// Note: IPFSClient is not exported from main index to avoid ESM compatibility issues
|
|
174
|
-
// Import directly from '@agirails/sdk/utils/IPFSClient' if needed
|
|
175
|
-
export type { IPFSClient, IPFSClientConfig } from './utils/IPFSClient';
|
|
176
|
-
export { generateSecureNonce, isValidNonce, generateSecureNonces } from './utils/SecureNonce';
|
|
177
|
-
export { Semaphore, RateLimiter } from './utils/Semaphore';
|
|
178
|
-
export {
|
|
179
|
-
IUsedAttestationTracker,
|
|
180
|
-
InMemoryUsedAttestationTracker,
|
|
181
|
-
FileBasedUsedAttestationTracker,
|
|
182
|
-
createUsedAttestationTracker,
|
|
183
|
-
} from './utils/UsedAttestationTracker';
|
|
184
|
-
|
|
185
|
-
// Wallet
|
|
186
|
-
export { resolvePrivateKey, getCachedAddress } from './wallet/keystore';
|
|
187
|
-
export type {
|
|
188
|
-
IWalletProvider,
|
|
189
|
-
TransactionRequest as WalletTransactionRequest,
|
|
190
|
-
TransactionReceipt as WalletTransactionReceipt,
|
|
191
|
-
WalletInfo,
|
|
192
|
-
WalletTier,
|
|
193
|
-
BatchedPayParams,
|
|
194
|
-
BatchedPayResult,
|
|
195
|
-
} from './wallet/IWalletProvider';
|
|
196
|
-
export { EOAWalletProvider } from './wallet/EOAWalletProvider';
|
|
197
|
-
export { AutoWalletProvider } from './wallet/AutoWalletProvider';
|
|
198
|
-
export type { AutoWalletConfig } from './wallet/AutoWalletProvider';
|
|
199
|
-
|
|
200
|
-
// Helper utilities
|
|
201
|
-
export {
|
|
202
|
-
USDC,
|
|
203
|
-
Deadline,
|
|
204
|
-
Address,
|
|
205
|
-
Bytes32,
|
|
206
|
-
State as StateHelpers,
|
|
207
|
-
DisputeWindow,
|
|
208
|
-
parseUSDC,
|
|
209
|
-
formatUSDC,
|
|
210
|
-
shortenAddress,
|
|
211
|
-
ServiceHash,
|
|
212
|
-
hashServiceMetadata,
|
|
213
|
-
} from './utils/Helpers';
|
|
214
|
-
export type { ServiceMetadata } from './utils/Helpers';
|
|
215
|
-
|
|
216
|
-
// =============================================================================
|
|
217
|
-
// Basic API - Simple provide/request interface
|
|
218
|
-
// =============================================================================
|
|
219
|
-
|
|
220
|
-
export { provide, request, serviceDirectory } from './level0';
|
|
221
|
-
export type {
|
|
222
|
-
Provider,
|
|
223
|
-
ProviderStatus,
|
|
224
|
-
ProviderStats,
|
|
225
|
-
ProviderBalance,
|
|
226
|
-
} from './level0';
|
|
227
|
-
|
|
228
|
-
// =============================================================================
|
|
229
|
-
// Standard API - Agent-based interface
|
|
230
|
-
// =============================================================================
|
|
231
|
-
|
|
232
|
-
export { Agent, calculatePrice, DEFAULT_PRICING_STRATEGY } from './level1';
|
|
233
|
-
export type {
|
|
234
|
-
AgentConfig,
|
|
235
|
-
AgentStatus,
|
|
236
|
-
AgentStats,
|
|
237
|
-
AgentBalance,
|
|
238
|
-
ServiceConfig,
|
|
239
|
-
Job,
|
|
240
|
-
JobHandler,
|
|
241
|
-
JobContext,
|
|
242
|
-
ProvideOptions,
|
|
243
|
-
RequestOptions,
|
|
244
|
-
RequestResult,
|
|
245
|
-
RequestStatus,
|
|
246
|
-
WalletOption,
|
|
247
|
-
NetworkOption,
|
|
248
|
-
PricingStrategy,
|
|
249
|
-
ServiceCost,
|
|
250
|
-
BelowPriceBehavior,
|
|
251
|
-
BelowCostBehavior,
|
|
252
|
-
PriceCalculation,
|
|
253
|
-
} from './level1';
|
|
254
|
-
|
|
255
|
-
// =============================================================================
|
|
256
|
-
// Storage Layer (AIP-7 §4) - Hybrid IPFS + Arweave
|
|
257
|
-
// =============================================================================
|
|
258
|
-
|
|
259
|
-
// Storage clients
|
|
260
|
-
export { FilebaseClient } from './storage/FilebaseClient';
|
|
261
|
-
export { ArweaveClient } from './storage/ArweaveClient';
|
|
262
|
-
|
|
263
|
-
// Archive bundle builder
|
|
264
|
-
export {
|
|
265
|
-
ArchiveBundleBuilder,
|
|
266
|
-
computeContentHash,
|
|
267
|
-
validateArchiveBundle,
|
|
268
|
-
} from './storage/ArchiveBundleBuilder';
|
|
269
|
-
|
|
270
|
-
// Storage types
|
|
271
|
-
export type {
|
|
272
|
-
FilebaseConfig,
|
|
273
|
-
ArweaveConfig,
|
|
274
|
-
IrysCurrency,
|
|
275
|
-
IrysNetwork,
|
|
276
|
-
ArchiveBundle,
|
|
277
|
-
ArchiveChainId,
|
|
278
|
-
ArchiveFinalState,
|
|
279
|
-
ArchiveParticipants,
|
|
280
|
-
ArchiveReferences,
|
|
281
|
-
ArchiveHashes,
|
|
282
|
-
ArchiveSignatures,
|
|
283
|
-
ArchiveAttestation,
|
|
284
|
-
ArchiveSettlement,
|
|
285
|
-
EscrowRelease,
|
|
286
|
-
ArchiveTags,
|
|
287
|
-
IPFSUploadResult,
|
|
288
|
-
ArweaveUploadResult,
|
|
289
|
-
DownloadResult,
|
|
290
|
-
} from './storage/types';
|
|
291
|
-
|
|
292
|
-
// Storage constants
|
|
293
|
-
export { ARCHIVE_BUNDLE_TYPE } from './storage/types';
|
|
294
|
-
|
|
295
|
-
// =============================================================================
|
|
296
|
-
// ERC-8004 Integration
|
|
297
|
-
// =============================================================================
|
|
298
|
-
|
|
299
|
-
export {
|
|
300
|
-
ERC8004Bridge,
|
|
301
|
-
ReputationReporter,
|
|
302
|
-
ERC8004Error,
|
|
303
|
-
ERC8004ErrorCode,
|
|
304
|
-
ERC8004_IDENTITY_REGISTRY,
|
|
305
|
-
ERC8004_REPUTATION_REGISTRY,
|
|
306
|
-
ERC8004_DEFAULT_RPC,
|
|
307
|
-
ACTP_FEEDBACK_TAGS,
|
|
308
|
-
} from './erc8004';
|
|
309
|
-
|
|
310
|
-
export type {
|
|
311
|
-
ERC8004BridgeConfig,
|
|
312
|
-
ReputationReporterConfig,
|
|
313
|
-
ReportSettlementParams,
|
|
314
|
-
ReportDisputeParams,
|
|
315
|
-
ReportResult,
|
|
316
|
-
ERC8004Network,
|
|
317
|
-
ERC8004Agent,
|
|
318
|
-
ERC8004AgentMetadata,
|
|
319
|
-
ReputationFeedback,
|
|
320
|
-
ReputationSummary,
|
|
321
|
-
ACTPFeedbackTag,
|
|
322
|
-
} from './erc8004';
|
|
323
|
-
|
|
324
|
-
// =============================================================================
|
|
325
|
-
// Enhanced Error Exports
|
|
326
|
-
// =============================================================================
|
|
327
|
-
|
|
328
|
-
export {
|
|
329
|
-
ACTPError,
|
|
330
|
-
InsufficientFundsError,
|
|
331
|
-
TransactionNotFoundError,
|
|
332
|
-
DeadlineExpiredError,
|
|
333
|
-
InvalidStateTransitionError,
|
|
334
|
-
SignatureVerificationError,
|
|
335
|
-
TransactionRevertedError,
|
|
336
|
-
NetworkError,
|
|
337
|
-
ValidationError,
|
|
338
|
-
InvalidAddressError,
|
|
339
|
-
InvalidAmountError,
|
|
340
|
-
// Basic/Standard API errors
|
|
341
|
-
NoProviderFoundError,
|
|
342
|
-
TimeoutError,
|
|
343
|
-
ProviderRejectedError,
|
|
344
|
-
DeliveryFailedError,
|
|
345
|
-
DisputeRaisedError,
|
|
346
|
-
ServiceConfigError,
|
|
347
|
-
AgentLifecycleError,
|
|
348
|
-
// Storage errors (AIP-7)
|
|
349
|
-
StorageError,
|
|
350
|
-
StorageAuthenticationError,
|
|
351
|
-
StorageRateLimitError,
|
|
352
|
-
UploadTimeoutError,
|
|
353
|
-
DownloadTimeoutError,
|
|
354
|
-
ContentNotFoundError,
|
|
355
|
-
FileSizeLimitExceededError,
|
|
356
|
-
InvalidCIDError,
|
|
357
|
-
ArweaveUploadError,
|
|
358
|
-
ArweaveDownloadError,
|
|
359
|
-
ArweaveTimeoutError,
|
|
360
|
-
InvalidArweaveTxIdError,
|
|
361
|
-
InsufficientBalanceError as StorageInsufficientBalanceError,
|
|
362
|
-
SwapExecutionError,
|
|
363
|
-
QueryCapExceededError,
|
|
364
|
-
} from './errors';
|
package/src/level0/Provider.ts
DELETED
|
@@ -1,117 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Provider - Return type of provide() function
|
|
3
|
-
*
|
|
4
|
-
* Provides control and observability for a running service provider.
|
|
5
|
-
*
|
|
6
|
-
* @packageDocumentation
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
import { Job } from '../level1/types/Job';
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* Provider status
|
|
13
|
-
*/
|
|
14
|
-
export type ProviderStatus = 'starting' | 'running' | 'paused' | 'stopped';
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* Provider statistics
|
|
18
|
-
*/
|
|
19
|
-
export interface ProviderStats {
|
|
20
|
-
jobsCompleted: number;
|
|
21
|
-
jobsFailed: number;
|
|
22
|
-
totalEarned: number;
|
|
23
|
-
averageJobTime: number;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
* Provider balance
|
|
28
|
-
*/
|
|
29
|
-
export interface ProviderBalance {
|
|
30
|
-
eth: string;
|
|
31
|
-
usdc: string;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
/**
|
|
35
|
-
* Provider interface
|
|
36
|
-
*
|
|
37
|
-
* Returned by provide() to control the provider lifecycle.
|
|
38
|
-
*
|
|
39
|
-
* @example
|
|
40
|
-
* ```typescript
|
|
41
|
-
* const provider = provide('echo', async (job) => job.input);
|
|
42
|
-
*
|
|
43
|
-
* // Monitor events
|
|
44
|
-
* provider.on('job:received', (job) => {
|
|
45
|
-
* console.log(`Received job: ${job.id}`);
|
|
46
|
-
* });
|
|
47
|
-
*
|
|
48
|
-
* provider.on('payment:received', (amount) => {
|
|
49
|
-
* console.log(`Earned ${amount} USDC`);
|
|
50
|
-
* });
|
|
51
|
-
*
|
|
52
|
-
* // Control lifecycle
|
|
53
|
-
* provider.pause(); // Stop accepting new jobs
|
|
54
|
-
* provider.resume(); // Resume
|
|
55
|
-
* await provider.stop(); // Graceful shutdown
|
|
56
|
-
*
|
|
57
|
-
* // Check statistics
|
|
58
|
-
* console.log(`Completed: ${provider.stats.jobsCompleted}`);
|
|
59
|
-
* console.log(`Earned: $${provider.stats.totalEarned}`);
|
|
60
|
-
* ```
|
|
61
|
-
*/
|
|
62
|
-
export interface Provider {
|
|
63
|
-
/**
|
|
64
|
-
* Current status
|
|
65
|
-
*/
|
|
66
|
-
status: ProviderStatus;
|
|
67
|
-
|
|
68
|
-
/**
|
|
69
|
-
* Provider's Ethereum address
|
|
70
|
-
*/
|
|
71
|
-
address: string;
|
|
72
|
-
|
|
73
|
-
/**
|
|
74
|
-
* Balance information
|
|
75
|
-
*/
|
|
76
|
-
balance: ProviderBalance;
|
|
77
|
-
|
|
78
|
-
/**
|
|
79
|
-
* Pause the provider
|
|
80
|
-
*
|
|
81
|
-
* Stops accepting new jobs but keeps running jobs active.
|
|
82
|
-
*/
|
|
83
|
-
pause(): void;
|
|
84
|
-
|
|
85
|
-
/**
|
|
86
|
-
* Resume the provider
|
|
87
|
-
*
|
|
88
|
-
* Resumes accepting new jobs after pause.
|
|
89
|
-
*/
|
|
90
|
-
resume(): void;
|
|
91
|
-
|
|
92
|
-
/**
|
|
93
|
-
* Stop the provider
|
|
94
|
-
*
|
|
95
|
-
* Gracefully shuts down, waiting for active jobs to complete.
|
|
96
|
-
*/
|
|
97
|
-
stop(): Promise<void>;
|
|
98
|
-
|
|
99
|
-
/**
|
|
100
|
-
* Register event listener
|
|
101
|
-
*
|
|
102
|
-
* Supported events:
|
|
103
|
-
* - 'job:received': (job: Job) => void
|
|
104
|
-
* - 'job:completed': (job: Job, result: any) => void
|
|
105
|
-
* - 'job:failed': (job: Job, error: Error) => void
|
|
106
|
-
* - 'payment:received': (amount: number) => void
|
|
107
|
-
*/
|
|
108
|
-
on(event: 'job:received', handler: (job: Job) => void): void;
|
|
109
|
-
on(event: 'job:completed', handler: (job: Job, result: any) => void): void;
|
|
110
|
-
on(event: 'job:failed', handler: (job: Job, error: Error) => void): void;
|
|
111
|
-
on(event: 'payment:received', handler: (amount: number) => void): void;
|
|
112
|
-
|
|
113
|
-
/**
|
|
114
|
-
* Statistics
|
|
115
|
-
*/
|
|
116
|
-
stats: ProviderStats;
|
|
117
|
-
}
|
|
@@ -1,131 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ServiceDirectory - Hardcoded provider mapping for MVP
|
|
3
|
-
*
|
|
4
|
-
* In MVP, we use hardcoded service-to-provider mapping.
|
|
5
|
-
* In V2+, this will be replaced by on-chain AgentRegistry queries.
|
|
6
|
-
*
|
|
7
|
-
* @packageDocumentation
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
import { validateServiceName, isValidAddress } from '../utils/security';
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* In-memory service directory
|
|
14
|
-
*
|
|
15
|
-
* Maps service names to provider addresses.
|
|
16
|
-
* This is a singleton that can be updated by provide() calls.
|
|
17
|
-
*
|
|
18
|
-
* SECURITY FIXES:
|
|
19
|
-
* - H-5: Address validation to prevent poisoning
|
|
20
|
-
* - H-2: Service name validation
|
|
21
|
-
*/
|
|
22
|
-
class ServiceDirectory {
|
|
23
|
-
/**
|
|
24
|
-
* Service -> Provider address mapping
|
|
25
|
-
*/
|
|
26
|
-
private directory = new Map<string, Set<string>>();
|
|
27
|
-
|
|
28
|
-
/**
|
|
29
|
-
* Register a provider for a service
|
|
30
|
-
*
|
|
31
|
-
* SECURITY FIX (H-5): Validate address format before registration
|
|
32
|
-
* SECURITY FIX (H-2): Validate service name
|
|
33
|
-
*
|
|
34
|
-
* @param service - Service name
|
|
35
|
-
* @param provider - Provider address
|
|
36
|
-
* @throws Error if service name or provider address is invalid
|
|
37
|
-
*/
|
|
38
|
-
register(service: string, provider: string): void {
|
|
39
|
-
// SECURITY FIX (H-2): Validate service name
|
|
40
|
-
const validatedService = validateServiceName(service);
|
|
41
|
-
|
|
42
|
-
// SECURITY FIX (H-5): Validate Ethereum address format
|
|
43
|
-
if (!isValidAddress(provider)) {
|
|
44
|
-
throw new Error(
|
|
45
|
-
`Invalid provider address: "${provider}". Must be a valid Ethereum address (0x followed by 40 hex characters).`
|
|
46
|
-
);
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
if (!this.directory.has(validatedService)) {
|
|
50
|
-
this.directory.set(validatedService, new Set());
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
this.directory.get(validatedService)!.add(provider);
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
/**
|
|
57
|
-
* Unregister a provider from a service
|
|
58
|
-
*
|
|
59
|
-
* SECURITY FIX (H-5): Validate address format
|
|
60
|
-
* SECURITY FIX (H-2): Validate service name
|
|
61
|
-
*
|
|
62
|
-
* @param service - Service name
|
|
63
|
-
* @param provider - Provider address
|
|
64
|
-
*/
|
|
65
|
-
unregister(service: string, provider: string): void {
|
|
66
|
-
// SECURITY FIX (H-2): Validate service name
|
|
67
|
-
const validatedService = validateServiceName(service);
|
|
68
|
-
|
|
69
|
-
// SECURITY FIX (H-5): Validate address format
|
|
70
|
-
if (!isValidAddress(provider)) {
|
|
71
|
-
throw new Error(`Invalid provider address: "${provider}"`);
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
const providers = this.directory.get(validatedService);
|
|
75
|
-
if (providers) {
|
|
76
|
-
providers.delete(provider);
|
|
77
|
-
if (providers.size === 0) {
|
|
78
|
-
this.directory.delete(validatedService);
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
/**
|
|
84
|
-
* Find providers for a service
|
|
85
|
-
*
|
|
86
|
-
* SECURITY FIX (H-2): Validate service name
|
|
87
|
-
*
|
|
88
|
-
* @param service - Service name
|
|
89
|
-
* @returns Array of provider addresses
|
|
90
|
-
*/
|
|
91
|
-
findProviders(service: string): string[] {
|
|
92
|
-
// SECURITY FIX (H-2): Validate service name
|
|
93
|
-
try {
|
|
94
|
-
const validatedService = validateServiceName(service);
|
|
95
|
-
const providers = this.directory.get(validatedService);
|
|
96
|
-
return providers ? Array.from(providers) : [];
|
|
97
|
-
} catch (error) {
|
|
98
|
-
// If service name is invalid, return empty array instead of throwing
|
|
99
|
-
// This allows graceful degradation in search scenarios
|
|
100
|
-
return [];
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
/**
|
|
105
|
-
* Get all registered services
|
|
106
|
-
*
|
|
107
|
-
* @returns Array of service names
|
|
108
|
-
*/
|
|
109
|
-
getServices(): string[] {
|
|
110
|
-
return Array.from(this.directory.keys());
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
/**
|
|
114
|
-
* Clear all registrations
|
|
115
|
-
*/
|
|
116
|
-
clear(): void {
|
|
117
|
-
this.directory.clear();
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
/**
|
|
121
|
-
* Get directory size (for debugging)
|
|
122
|
-
*/
|
|
123
|
-
get size(): number {
|
|
124
|
-
return this.directory.size;
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
/**
|
|
129
|
-
* Singleton instance
|
|
130
|
-
*/
|
|
131
|
-
export const serviceDirectory = new ServiceDirectory();
|
package/src/level0/index.ts
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Basic API - Simple service provision and requests
|
|
3
|
-
*
|
|
4
|
-
* @packageDocumentation
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
export { provide } from './provide';
|
|
8
|
-
export { request } from './request';
|
|
9
|
-
export { Provider, ProviderStatus, ProviderStats, ProviderBalance } from './Provider';
|
|
10
|
-
export { serviceDirectory } from './ServiceDirectory';
|