@agirails/sdk 2.0.1-beta → 2.0.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/LICENSE +190 -0
- package/README.md +116 -108
- package/bin/actp +10 -0
- package/dist/ACTPClient.d.ts +456 -33
- package/dist/ACTPClient.d.ts.map +1 -1
- package/dist/ACTPClient.js +477 -93
- package/dist/ACTPClient.js.map +1 -1
- package/dist/abi/AgentRegistry.json +782 -0
- package/dist/abi/EscrowVault.json +106 -38
- package/dist/abi/IdentityRegistry.json +316 -0
- package/dist/adapters/BaseAdapter.d.ts +231 -0
- package/dist/adapters/BaseAdapter.d.ts.map +1 -0
- package/dist/adapters/BaseAdapter.js +393 -0
- package/dist/adapters/BaseAdapter.js.map +1 -0
- package/dist/adapters/BeginnerAdapter.d.ts +152 -0
- package/dist/adapters/BeginnerAdapter.d.ts.map +1 -0
- package/dist/adapters/BeginnerAdapter.js +168 -0
- package/dist/adapters/BeginnerAdapter.js.map +1 -0
- package/dist/adapters/IntermediateAdapter.d.ts +211 -0
- package/dist/adapters/IntermediateAdapter.d.ts.map +1 -0
- package/dist/adapters/IntermediateAdapter.js +260 -0
- package/dist/adapters/IntermediateAdapter.js.map +1 -0
- package/dist/adapters/index.d.ts +15 -0
- package/dist/adapters/index.d.ts.map +1 -0
- package/dist/adapters/index.js +26 -0
- package/dist/adapters/index.js.map +1 -0
- package/dist/builders/DeliveryProofBuilder.d.ts +60 -1
- package/dist/builders/DeliveryProofBuilder.d.ts.map +1 -1
- package/dist/builders/DeliveryProofBuilder.js +81 -5
- package/dist/builders/DeliveryProofBuilder.js.map +1 -1
- package/dist/builders/QuoteBuilder.d.ts +101 -0
- package/dist/builders/QuoteBuilder.d.ts.map +1 -1
- package/dist/builders/QuoteBuilder.js +120 -3
- package/dist/builders/QuoteBuilder.js.map +1 -1
- package/dist/builders/index.d.ts +4 -0
- package/dist/builders/index.d.ts.map +1 -1
- package/dist/builders/index.js +4 -0
- package/dist/builders/index.js.map +1 -1
- package/dist/cli/commands/balance.d.ts +13 -0
- package/dist/cli/commands/balance.d.ts.map +1 -0
- package/dist/cli/commands/balance.js +89 -0
- package/dist/cli/commands/balance.js.map +1 -0
- package/dist/cli/commands/batch.d.ts +24 -0
- package/dist/cli/commands/batch.d.ts.map +1 -0
- package/dist/cli/commands/batch.js +424 -0
- package/dist/cli/commands/batch.js.map +1 -0
- package/dist/cli/commands/config.d.ts +13 -0
- package/dist/cli/commands/config.d.ts.map +1 -0
- package/dist/cli/commands/config.js +192 -0
- package/dist/cli/commands/config.js.map +1 -0
- package/dist/cli/commands/init.d.ts +19 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/init.js +143 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/mint.d.ts +13 -0
- package/dist/cli/commands/mint.d.ts.map +1 -0
- package/dist/cli/commands/mint.js +91 -0
- package/dist/cli/commands/mint.js.map +1 -0
- package/dist/cli/commands/pay.d.ts +18 -0
- package/dist/cli/commands/pay.d.ts.map +1 -0
- package/dist/cli/commands/pay.js +87 -0
- package/dist/cli/commands/pay.js.map +1 -0
- package/dist/cli/commands/simulate.d.ts +32 -0
- package/dist/cli/commands/simulate.d.ts.map +1 -0
- package/dist/cli/commands/simulate.js +290 -0
- package/dist/cli/commands/simulate.js.map +1 -0
- package/dist/cli/commands/time.d.ts +29 -0
- package/dist/cli/commands/time.d.ts.map +1 -0
- package/dist/cli/commands/time.js +252 -0
- package/dist/cli/commands/time.js.map +1 -0
- package/dist/cli/commands/tx.d.ts +16 -0
- package/dist/cli/commands/tx.d.ts.map +1 -0
- package/dist/cli/commands/tx.js +379 -0
- package/dist/cli/commands/tx.js.map +1 -0
- package/dist/cli/commands/watch.d.ts +20 -0
- package/dist/cli/commands/watch.d.ts.map +1 -0
- package/dist/cli/commands/watch.js +160 -0
- package/dist/cli/commands/watch.js.map +1 -0
- package/dist/cli/index.d.ts +17 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +104 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/utils/client.d.ts +70 -0
- package/dist/cli/utils/client.d.ts.map +1 -0
- package/dist/cli/utils/client.js +240 -0
- package/dist/cli/utils/client.js.map +1 -0
- package/dist/cli/utils/config.d.ts +91 -0
- package/dist/cli/utils/config.d.ts.map +1 -0
- package/dist/cli/utils/config.js +240 -0
- package/dist/cli/utils/config.js.map +1 -0
- package/dist/cli/utils/output.d.ts +174 -0
- package/dist/cli/utils/output.d.ts.map +1 -0
- package/dist/cli/utils/output.js +380 -0
- package/dist/cli/utils/output.js.map +1 -0
- package/dist/config/networks.d.ts +28 -0
- package/dist/config/networks.d.ts.map +1 -1
- package/dist/config/networks.js +60 -12
- package/dist/config/networks.js.map +1 -1
- package/dist/errors/index.d.ts +165 -2
- package/dist/errors/index.d.ts.map +1 -1
- package/dist/errors/index.js +260 -2
- package/dist/errors/index.js.map +1 -1
- package/dist/index.d.ts +61 -13
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +141 -36
- package/dist/index.js.map +1 -1
- package/dist/level0/Provider.d.ts +106 -0
- package/dist/level0/Provider.d.ts.map +1 -0
- package/dist/level0/Provider.js +10 -0
- package/dist/level0/Provider.js.map +1 -0
- package/dist/level0/ServiceDirectory.d.ts +74 -0
- package/dist/level0/ServiceDirectory.d.ts.map +1 -0
- package/dist/level0/ServiceDirectory.js +122 -0
- package/dist/level0/ServiceDirectory.js.map +1 -0
- package/dist/level0/index.d.ts +10 -0
- package/dist/level0/index.d.ts.map +1 -0
- package/dist/level0/index.js +15 -0
- package/dist/level0/index.js.map +1 -0
- package/dist/level0/provide.d.ts +51 -0
- package/dist/level0/provide.d.ts.map +1 -0
- package/dist/level0/provide.js +113 -0
- package/dist/level0/provide.js.map +1 -0
- package/dist/level0/request.d.ts +53 -0
- package/dist/level0/request.d.ts.map +1 -0
- package/dist/level0/request.js +462 -0
- package/dist/level0/request.js.map +1 -0
- package/dist/level1/Agent.d.ts +472 -0
- package/dist/level1/Agent.d.ts.map +1 -0
- package/dist/level1/Agent.js +1091 -0
- package/dist/level1/Agent.js.map +1 -0
- package/dist/level1/index.d.ts +10 -0
- package/dist/level1/index.d.ts.map +1 -0
- package/dist/level1/index.js +30 -0
- package/dist/level1/index.js.map +1 -0
- package/dist/level1/pricing/PriceCalculator.d.ts +62 -0
- package/dist/level1/pricing/PriceCalculator.d.ts.map +1 -0
- package/dist/level1/pricing/PriceCalculator.js +237 -0
- package/dist/level1/pricing/PriceCalculator.js.map +1 -0
- package/dist/level1/pricing/PricingStrategy.d.ts +179 -0
- package/dist/level1/pricing/PricingStrategy.d.ts.map +1 -0
- package/dist/level1/pricing/PricingStrategy.js +11 -0
- package/dist/level1/pricing/PricingStrategy.js.map +1 -0
- package/dist/level1/types/Job.d.ts +166 -0
- package/dist/level1/types/Job.d.ts.map +1 -0
- package/dist/level1/types/Job.js +11 -0
- package/dist/level1/types/Job.js.map +1 -0
- package/dist/level1/types/Options.d.ts +258 -0
- package/dist/level1/types/Options.d.ts.map +1 -0
- package/dist/level1/types/Options.js +8 -0
- package/dist/level1/types/Options.js.map +1 -0
- package/dist/level1/types/index.d.ts +8 -0
- package/dist/level1/types/index.d.ts.map +1 -0
- package/dist/level1/types/index.js +8 -0
- package/dist/level1/types/index.js.map +1 -0
- package/dist/protocol/ACTPKernel.d.ts +229 -2
- package/dist/protocol/ACTPKernel.d.ts.map +1 -1
- package/dist/protocol/ACTPKernel.js +367 -33
- package/dist/protocol/ACTPKernel.js.map +1 -1
- package/dist/protocol/AgentRegistry.d.ts +177 -0
- package/dist/protocol/AgentRegistry.d.ts.map +1 -0
- package/dist/protocol/AgentRegistry.js +449 -0
- package/dist/protocol/AgentRegistry.js.map +1 -0
- package/dist/protocol/DIDManager.d.ts +289 -0
- package/dist/protocol/DIDManager.d.ts.map +1 -0
- package/dist/protocol/DIDManager.js +481 -0
- package/dist/protocol/DIDManager.js.map +1 -0
- package/dist/protocol/DIDResolver.d.ts +236 -0
- package/dist/protocol/DIDResolver.d.ts.map +1 -0
- package/dist/protocol/DIDResolver.js +495 -0
- package/dist/protocol/DIDResolver.js.map +1 -0
- package/dist/protocol/EASHelper.d.ts +57 -2
- package/dist/protocol/EASHelper.d.ts.map +1 -1
- package/dist/protocol/EASHelper.js +230 -37
- package/dist/protocol/EASHelper.js.map +1 -1
- package/dist/protocol/EscrowVault.d.ts +93 -2
- package/dist/protocol/EscrowVault.d.ts.map +1 -1
- package/dist/protocol/EscrowVault.js +122 -33
- package/dist/protocol/EscrowVault.js.map +1 -1
- package/dist/protocol/EventMonitor.d.ts +45 -1
- package/dist/protocol/EventMonitor.d.ts.map +1 -1
- package/dist/protocol/EventMonitor.js +64 -8
- package/dist/protocol/EventMonitor.js.map +1 -1
- package/dist/protocol/MessageSigner.d.ts +116 -2
- package/dist/protocol/MessageSigner.d.ts.map +1 -1
- package/dist/protocol/MessageSigner.js +215 -9
- package/dist/protocol/MessageSigner.js.map +1 -1
- package/dist/protocol/ProofGenerator.d.ts +93 -0
- package/dist/protocol/ProofGenerator.d.ts.map +1 -1
- package/dist/protocol/ProofGenerator.js +194 -9
- package/dist/protocol/ProofGenerator.js.map +1 -1
- package/dist/protocol/QuoteBuilder.d.ts +8 -0
- package/dist/protocol/QuoteBuilder.d.ts.map +1 -1
- package/dist/protocol/QuoteBuilder.js +8 -0
- package/dist/protocol/QuoteBuilder.js.map +1 -1
- package/dist/runtime/BlockchainRuntime.d.ts +360 -0
- package/dist/runtime/BlockchainRuntime.d.ts.map +1 -0
- package/dist/runtime/BlockchainRuntime.js +767 -0
- package/dist/runtime/BlockchainRuntime.js.map +1 -0
- package/dist/runtime/IACTPRuntime.d.ts +271 -0
- package/dist/runtime/IACTPRuntime.d.ts.map +1 -0
- package/dist/runtime/IACTPRuntime.js +15 -0
- package/dist/runtime/IACTPRuntime.js.map +1 -0
- package/dist/runtime/MockRuntime.d.ts +445 -0
- package/dist/runtime/MockRuntime.d.ts.map +1 -0
- package/dist/runtime/MockRuntime.js +1065 -0
- package/dist/runtime/MockRuntime.js.map +1 -0
- package/dist/runtime/MockStateManager.d.ts +233 -0
- package/dist/runtime/MockStateManager.d.ts.map +1 -0
- package/dist/runtime/MockStateManager.js +533 -0
- package/dist/runtime/MockStateManager.js.map +1 -0
- package/dist/runtime/index.d.ts +14 -0
- package/dist/runtime/index.d.ts.map +1 -0
- package/dist/runtime/index.js +42 -0
- package/dist/runtime/index.js.map +1 -0
- package/dist/runtime/types/MockState.d.ts +167 -0
- package/dist/runtime/types/MockState.d.ts.map +1 -0
- package/dist/runtime/types/MockState.js +43 -0
- package/dist/runtime/types/MockState.js.map +1 -0
- package/dist/types/agent.d.ts +76 -0
- package/dist/types/agent.d.ts.map +1 -0
- package/dist/types/agent.js +8 -0
- package/dist/types/agent.js.map +1 -0
- package/dist/types/did.d.ts +192 -0
- package/dist/types/did.d.ts.map +1 -0
- package/dist/types/did.js +38 -0
- package/dist/types/did.js.map +1 -0
- package/dist/types/eip712.d.ts +34 -0
- package/dist/types/eip712.d.ts.map +1 -1
- package/dist/types/eip712.js +31 -5
- package/dist/types/eip712.js.map +1 -1
- package/dist/types/escrow.d.ts +17 -10
- package/dist/types/escrow.d.ts.map +1 -1
- package/dist/types/index.d.ts +5 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +8 -0
- package/dist/types/index.js.map +1 -1
- package/dist/types/message.d.ts +32 -0
- package/dist/types/message.d.ts.map +1 -1
- package/dist/types/message.js +4 -0
- package/dist/types/message.js.map +1 -1
- package/dist/types/state.d.ts +28 -0
- package/dist/types/state.d.ts.map +1 -1
- package/dist/types/state.js +37 -6
- package/dist/types/state.js.map +1 -1
- package/dist/types/transaction.d.ts +17 -0
- package/dist/types/transaction.d.ts.map +1 -1
- package/dist/utils/ErrorRecoveryGuide.d.ts +125 -0
- package/dist/utils/ErrorRecoveryGuide.d.ts.map +1 -0
- package/dist/utils/ErrorRecoveryGuide.js +579 -0
- package/dist/utils/ErrorRecoveryGuide.js.map +1 -0
- package/dist/utils/Helpers.d.ts +453 -0
- package/dist/utils/Helpers.d.ts.map +1 -0
- package/dist/utils/Helpers.js +623 -0
- package/dist/utils/Helpers.js.map +1 -0
- package/dist/utils/IPFSClient.d.ts +113 -0
- package/dist/utils/IPFSClient.d.ts.map +1 -1
- package/dist/utils/IPFSClient.js +128 -7
- package/dist/utils/IPFSClient.js.map +1 -1
- package/dist/utils/Logger.d.ts +195 -0
- package/dist/utils/Logger.d.ts.map +1 -0
- package/dist/utils/Logger.js +382 -0
- package/dist/utils/Logger.js.map +1 -0
- package/dist/utils/NonceManager.d.ts +234 -1
- package/dist/utils/NonceManager.d.ts.map +1 -1
- package/dist/utils/NonceManager.js +372 -7
- package/dist/utils/NonceManager.js.map +1 -1
- package/dist/utils/RateLimiter.d.ts +253 -0
- package/dist/utils/RateLimiter.d.ts.map +1 -0
- package/dist/utils/RateLimiter.js +424 -0
- package/dist/utils/RateLimiter.js.map +1 -0
- package/dist/utils/ReceivedNonceTracker.d.ts +175 -0
- package/dist/utils/ReceivedNonceTracker.d.ts.map +1 -1
- package/dist/utils/ReceivedNonceTracker.js +261 -5
- package/dist/utils/ReceivedNonceTracker.js.map +1 -1
- package/dist/utils/SDKLifecycle.d.ts +156 -0
- package/dist/utils/SDKLifecycle.d.ts.map +1 -0
- package/dist/utils/SDKLifecycle.js +347 -0
- package/dist/utils/SDKLifecycle.js.map +1 -0
- package/dist/utils/SecureNonce.d.ts +57 -0
- package/dist/utils/SecureNonce.d.ts.map +1 -0
- package/dist/utils/SecureNonce.js +80 -0
- package/dist/utils/SecureNonce.js.map +1 -0
- package/dist/utils/Semaphore.d.ts +123 -0
- package/dist/utils/Semaphore.d.ts.map +1 -0
- package/dist/utils/Semaphore.js +247 -0
- package/dist/utils/Semaphore.js.map +1 -0
- package/dist/utils/UsedAttestationTracker.d.ts +167 -0
- package/dist/utils/UsedAttestationTracker.d.ts.map +1 -0
- package/dist/utils/UsedAttestationTracker.js +309 -0
- package/dist/utils/UsedAttestationTracker.js.map +1 -0
- package/dist/utils/canonicalJson.d.ts +22 -0
- package/dist/utils/canonicalJson.d.ts.map +1 -1
- package/dist/utils/canonicalJson.js +26 -3
- package/dist/utils/canonicalJson.js.map +1 -1
- package/dist/utils/computeTypeHash.d.ts +14 -0
- package/dist/utils/computeTypeHash.d.ts.map +1 -1
- package/dist/utils/computeTypeHash.js +19 -2
- package/dist/utils/computeTypeHash.js.map +1 -1
- package/dist/utils/fsSafe.d.ts +14 -0
- package/dist/utils/fsSafe.d.ts.map +1 -0
- package/dist/utils/fsSafe.js +89 -0
- package/dist/utils/fsSafe.js.map +1 -0
- package/dist/utils/index.d.ts +15 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +51 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/security.d.ts +147 -0
- package/dist/utils/security.d.ts.map +1 -0
- package/dist/utils/security.js +391 -0
- package/dist/utils/security.js.map +1 -0
- package/dist/utils/validation.d.ts +40 -0
- package/dist/utils/validation.d.ts.map +1 -1
- package/dist/utils/validation.js +184 -7
- package/dist/utils/validation.js.map +1 -1
- package/package.json +54 -37
- package/src/ACTPClient.ts +692 -178
- package/src/abi/AgentRegistry.json +782 -0
- package/src/abi/EscrowVault.json +106 -38
- package/src/abi/IdentityRegistry.json +316 -0
- package/src/adapters/BaseAdapter.ts +473 -0
- package/src/adapters/BeginnerAdapter.ts +232 -0
- package/src/adapters/IntermediateAdapter.ts +316 -0
- package/src/adapters/index.ts +25 -0
- package/src/builders/DeliveryProofBuilder.ts +3 -2
- package/src/cli/commands/balance.ts +110 -0
- package/src/cli/commands/batch.ts +487 -0
- package/src/cli/commands/config.ts +231 -0
- package/src/cli/commands/init.ts +161 -0
- package/src/cli/commands/mint.ts +116 -0
- package/src/cli/commands/pay.ts +113 -0
- package/src/cli/commands/simulate.ts +345 -0
- package/src/cli/commands/time.ts +303 -0
- package/src/cli/commands/tx.ts +448 -0
- package/src/cli/commands/watch.ts +211 -0
- package/src/cli/index.ts +116 -0
- package/src/cli/utils/client.ts +249 -0
- package/src/cli/utils/config.ts +282 -0
- package/src/cli/utils/output.ts +465 -0
- package/src/config/networks.ts +32 -9
- package/src/errors/index.ts +298 -1
- package/src/index.ts +207 -71
- package/src/level0/Provider.ts +117 -0
- package/src/level0/ServiceDirectory.ts +131 -0
- package/src/level0/index.ts +10 -0
- package/src/level0/provide.ts +131 -0
- package/src/level0/request.ts +494 -0
- package/src/level1/Agent.ts +1432 -0
- package/src/level1/index.ts +10 -0
- package/src/level1/pricing/PriceCalculator.ts +255 -0
- package/src/level1/pricing/PricingStrategy.ts +198 -0
- package/src/level1/types/Job.ts +179 -0
- package/src/level1/types/Options.ts +291 -0
- package/src/level1/types/index.ts +8 -0
- package/src/protocol/ACTPKernel.ts +175 -23
- package/src/protocol/AgentRegistry.ts +559 -0
- package/src/protocol/DIDManager.ts +629 -0
- package/src/protocol/DIDResolver.ts +554 -0
- package/src/protocol/EASHelper.ts +230 -46
- package/src/protocol/EscrowVault.ts +68 -50
- package/src/protocol/EventMonitor.ts +44 -15
- package/src/protocol/MessageSigner.ts +193 -13
- package/src/protocol/ProofGenerator.ts +223 -4
- package/src/runtime/BlockchainRuntime.ts +993 -0
- package/src/runtime/IACTPRuntime.ts +284 -0
- package/src/runtime/MockRuntime.ts +1244 -0
- package/src/runtime/MockStateManager.ts +576 -0
- package/src/runtime/index.ts +25 -0
- package/src/runtime/types/MockState.ts +227 -0
- package/src/types/agent.ts +79 -0
- package/src/types/did.ts +223 -0
- package/src/types/escrow.ts +12 -11
- package/src/types/index.ts +5 -1
- package/src/types/state.ts +12 -3
- package/src/types/transaction.ts +4 -1
- package/src/utils/ErrorRecoveryGuide.ts +675 -0
- package/src/utils/Helpers.ts +688 -0
- package/src/utils/IPFSClient.ts +122 -5
- package/src/utils/Logger.ts +484 -0
- package/src/utils/NonceManager.ts +305 -8
- package/src/utils/RateLimiter.ts +534 -0
- package/src/utils/ReceivedNonceTracker.ts +170 -0
- package/src/utils/SDKLifecycle.ts +416 -0
- package/src/utils/SecureNonce.ts +78 -0
- package/src/utils/Semaphore.ts +276 -0
- package/src/utils/UsedAttestationTracker.ts +387 -0
- package/src/utils/fsSafe.ts +75 -0
- package/src/utils/index.ts +80 -0
- package/src/utils/security.ts +418 -0
- package/src/utils/validation.ts +164 -0
- package/src/__tests__/ProofGenerator.test.ts +0 -124
- package/src/__tests__/QuoteBuilder.test.ts +0 -516
- package/src/__tests__/StateMachine.test.ts +0 -82
- package/src/__tests__/builders/DeliveryProofBuilder.test.ts +0 -581
- package/src/__tests__/integration/ACTPClient.test.ts +0 -263
- package/src/__tests__/integration.test.ts +0 -289
- package/src/__tests__/protocol/EASHelper.test.ts +0 -472
- package/src/__tests__/protocol/EventMonitor.test.ts +0 -382
- package/src/__tests__/security/ACTPKernel.security.test.ts +0 -1167
- package/src/__tests__/security/EscrowVault.security.test.ts +0 -570
- package/src/__tests__/security/MessageSigner.security.test.ts +0 -286
- package/src/__tests__/security/NonceReplay.security.test.ts +0 -501
- package/src/__tests__/security/validation.security.test.ts +0 -376
- package/src/__tests__/utils/IPFSClient.test.ts +0 -262
- package/src/__tests__/utils/NonceManager.test.ts +0 -205
- package/src/__tests__/utils/canonicalJson.test.ts +0 -153
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Mock State Type Definitions
|
|
3
|
+
*
|
|
4
|
+
* These interfaces define the structure of the persistent mock blockchain state
|
|
5
|
+
* stored in `.actp/mock-state.json`. This state is shared across CLI commands,
|
|
6
|
+
* SDK library usage, and Dashboard.
|
|
7
|
+
*
|
|
8
|
+
* @module runtime/types/MockState
|
|
9
|
+
* @see ADR-001 (Mock State Persistence Strategy)
|
|
10
|
+
* @see MOCK_STATE_MANAGER_SPEC.md
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* ACTP Transaction State enum matching the smart contract states.
|
|
15
|
+
*
|
|
16
|
+
* State machine:
|
|
17
|
+
* - INITIATED (0) -> QUOTED (1, optional) -> COMMITTED (2) -> IN_PROGRESS (3, optional)
|
|
18
|
+
* -> DELIVERED (4) -> SETTLED (5)
|
|
19
|
+
* - Dispute path: DELIVERED -> DISPUTED (6) -> SETTLED
|
|
20
|
+
* - Cancel path: Any pre-DELIVERED state -> CANCELLED (7)
|
|
21
|
+
*/
|
|
22
|
+
export type TransactionState =
|
|
23
|
+
| 'INITIATED'
|
|
24
|
+
| 'QUOTED'
|
|
25
|
+
| 'COMMITTED'
|
|
26
|
+
| 'IN_PROGRESS'
|
|
27
|
+
| 'DELIVERED'
|
|
28
|
+
| 'SETTLED'
|
|
29
|
+
| 'DISPUTED'
|
|
30
|
+
| 'CANCELLED';
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Numeric state values matching the smart contract enum.
|
|
34
|
+
*/
|
|
35
|
+
export const TransactionStateValue: Record<TransactionState, number> = {
|
|
36
|
+
INITIATED: 0,
|
|
37
|
+
QUOTED: 1,
|
|
38
|
+
COMMITTED: 2,
|
|
39
|
+
IN_PROGRESS: 3,
|
|
40
|
+
DELIVERED: 4,
|
|
41
|
+
SETTLED: 5,
|
|
42
|
+
DISPUTED: 6,
|
|
43
|
+
CANCELLED: 7,
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Mock blockchain event recorded during transaction lifecycle.
|
|
48
|
+
*
|
|
49
|
+
* Events are stored for debugging and can be queried to simulate
|
|
50
|
+
* blockchain event subscriptions.
|
|
51
|
+
*/
|
|
52
|
+
export interface MockEvent {
|
|
53
|
+
/** Event type (e.g., 'TransactionCreated', 'EscrowLinked', 'StateTransitioned') */
|
|
54
|
+
type: string;
|
|
55
|
+
|
|
56
|
+
/** Unix timestamp (seconds) when event was emitted */
|
|
57
|
+
timestamp: number;
|
|
58
|
+
|
|
59
|
+
/** Block number when event was included */
|
|
60
|
+
blockNumber: number;
|
|
61
|
+
|
|
62
|
+
/** Event-specific data payload */
|
|
63
|
+
data: Record<string, unknown>;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* Mock transaction representing an ACTP transaction in the mock blockchain.
|
|
68
|
+
*
|
|
69
|
+
* Mirrors the on-chain Transaction struct but stored as JSON for human-readability.
|
|
70
|
+
* BigNumber values are stored as strings to preserve precision.
|
|
71
|
+
*/
|
|
72
|
+
export interface MockTransaction {
|
|
73
|
+
/** Unique transaction identifier (bytes32 hex string) */
|
|
74
|
+
id: string;
|
|
75
|
+
|
|
76
|
+
/** Requester's Ethereum address (checksummed) */
|
|
77
|
+
requester: string;
|
|
78
|
+
|
|
79
|
+
/** Provider's Ethereum address (checksummed) */
|
|
80
|
+
provider: string;
|
|
81
|
+
|
|
82
|
+
/** Transaction amount in USDC wei (string for BigNumber precision, 6 decimals) */
|
|
83
|
+
amount: string;
|
|
84
|
+
|
|
85
|
+
/** Current transaction state */
|
|
86
|
+
state: TransactionState;
|
|
87
|
+
|
|
88
|
+
/** Unix timestamp (seconds) when transaction was created */
|
|
89
|
+
createdAt: number;
|
|
90
|
+
|
|
91
|
+
/** Unix timestamp (seconds) when transaction was last updated */
|
|
92
|
+
updatedAt: number;
|
|
93
|
+
|
|
94
|
+
/** Unix timestamp (seconds) deadline for transaction acceptance */
|
|
95
|
+
deadline: number;
|
|
96
|
+
|
|
97
|
+
/** Dispute window duration in seconds */
|
|
98
|
+
disputeWindow: number;
|
|
99
|
+
|
|
100
|
+
/** Unix timestamp (seconds) when transaction was completed (null if not completed) */
|
|
101
|
+
completedAt: number | null;
|
|
102
|
+
|
|
103
|
+
/** Linked escrow ID (null if not linked yet) */
|
|
104
|
+
escrowId: string | null;
|
|
105
|
+
|
|
106
|
+
/** Service description or metadata hash */
|
|
107
|
+
serviceDescription: string;
|
|
108
|
+
|
|
109
|
+
/** Delivery proof hash (null if not delivered) */
|
|
110
|
+
deliveryProof: string | null;
|
|
111
|
+
|
|
112
|
+
/** List of events emitted during transaction lifecycle */
|
|
113
|
+
events: MockEvent[];
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
/**
|
|
117
|
+
* Mock escrow representing funds locked for a transaction.
|
|
118
|
+
*
|
|
119
|
+
* In mock mode, escrow is simulated without actual token transfers.
|
|
120
|
+
*/
|
|
121
|
+
export interface MockEscrow {
|
|
122
|
+
/** Unique escrow identifier */
|
|
123
|
+
id: string;
|
|
124
|
+
|
|
125
|
+
/** Current escrow balance in USDC wei (string for BigNumber precision) */
|
|
126
|
+
balance: string;
|
|
127
|
+
|
|
128
|
+
/** Whether funds are currently locked (cannot be withdrawn) */
|
|
129
|
+
locked: boolean;
|
|
130
|
+
|
|
131
|
+
/** List of transaction IDs using this escrow */
|
|
132
|
+
transactions: string[];
|
|
133
|
+
|
|
134
|
+
/** Unix timestamp (seconds) when escrow was created */
|
|
135
|
+
createdAt: number;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
/**
|
|
139
|
+
* Mock account representing a user's wallet state.
|
|
140
|
+
*
|
|
141
|
+
* Tracks USDC balance for testing without real tokens.
|
|
142
|
+
*/
|
|
143
|
+
export interface MockAccount {
|
|
144
|
+
/** Ethereum address (checksummed) */
|
|
145
|
+
address: string;
|
|
146
|
+
|
|
147
|
+
/** USDC balance in wei (string for BigNumber precision, 6 decimals) */
|
|
148
|
+
usdcBalance: string;
|
|
149
|
+
|
|
150
|
+
/** Optional label for easier identification in tests */
|
|
151
|
+
label?: string;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
/**
|
|
155
|
+
* Mock blockchain state simulating chain parameters.
|
|
156
|
+
*
|
|
157
|
+
* Allows time manipulation and block progression for testing
|
|
158
|
+
* deadline-based logic and dispute windows.
|
|
159
|
+
*/
|
|
160
|
+
export interface MockBlockchain {
|
|
161
|
+
/** Current simulated Unix timestamp (seconds) */
|
|
162
|
+
currentTime: number;
|
|
163
|
+
|
|
164
|
+
/** Current block number */
|
|
165
|
+
blockNumber: number;
|
|
166
|
+
|
|
167
|
+
/** Chain ID (84532 for Base Sepolia, 8453 for Base Mainnet) */
|
|
168
|
+
chainId: number;
|
|
169
|
+
|
|
170
|
+
/** Average block time in seconds (for time progression calculations) */
|
|
171
|
+
blockTime: number;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
/**
|
|
175
|
+
* Complete mock state persisted to `.actp/mock-state.json`.
|
|
176
|
+
*
|
|
177
|
+
* This is the root interface for all mock blockchain state.
|
|
178
|
+
* Loaded/saved by MockStateManager.
|
|
179
|
+
*/
|
|
180
|
+
export interface MockState {
|
|
181
|
+
/** State schema version (e.g., "1.0") for migrations */
|
|
182
|
+
version: string;
|
|
183
|
+
|
|
184
|
+
/** Always "mock" for mock mode */
|
|
185
|
+
mode: 'mock';
|
|
186
|
+
|
|
187
|
+
/** Simulated blockchain parameters */
|
|
188
|
+
blockchain: MockBlockchain;
|
|
189
|
+
|
|
190
|
+
/** All mock transactions indexed by transaction ID */
|
|
191
|
+
transactions: Record<string, MockTransaction>;
|
|
192
|
+
|
|
193
|
+
/** All mock escrows indexed by escrow ID */
|
|
194
|
+
escrows: Record<string, MockEscrow>;
|
|
195
|
+
|
|
196
|
+
/** All mock accounts indexed by address */
|
|
197
|
+
accounts: Record<string, MockAccount>;
|
|
198
|
+
|
|
199
|
+
/**
|
|
200
|
+
* Global event log for all events (optional for backwards compatibility).
|
|
201
|
+
*
|
|
202
|
+
* SECURITY FIX (L-4): Events are now persisted to state file for
|
|
203
|
+
* debugging and audit purposes. This allows event history to survive
|
|
204
|
+
* across CLI invocations.
|
|
205
|
+
*/
|
|
206
|
+
events?: MockEvent[];
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
/**
|
|
210
|
+
* Default values for creating new mock state.
|
|
211
|
+
*/
|
|
212
|
+
export const MOCK_STATE_DEFAULTS = {
|
|
213
|
+
/** Current state schema version */
|
|
214
|
+
VERSION: '1.0',
|
|
215
|
+
|
|
216
|
+
/** Default chain ID (Base Sepolia testnet) */
|
|
217
|
+
CHAIN_ID: 84532,
|
|
218
|
+
|
|
219
|
+
/** Default starting block number */
|
|
220
|
+
INITIAL_BLOCK_NUMBER: 1000,
|
|
221
|
+
|
|
222
|
+
/** Default block time in seconds (Base L2 ~2 seconds) */
|
|
223
|
+
BLOCK_TIME: 2,
|
|
224
|
+
|
|
225
|
+
/** Default initial USDC balance for new accounts (10,000 USDC = 10_000_000_000 wei) */
|
|
226
|
+
DEFAULT_USDC_BALANCE: '10000000000',
|
|
227
|
+
} as const;
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent Registry Types (AIP-7)
|
|
3
|
+
*
|
|
4
|
+
* Types for AI agent identity, registration, and reputation
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Service descriptor metadata for an agent
|
|
9
|
+
*/
|
|
10
|
+
export interface ServiceDescriptor {
|
|
11
|
+
/** keccak256(lowercase(serviceType)) */
|
|
12
|
+
serviceTypeHash: string;
|
|
13
|
+
/** Human-readable service type (lowercase, alphanumeric + hyphens) */
|
|
14
|
+
serviceType: string;
|
|
15
|
+
/** IPFS/HTTPS URL to JSON Schema for inputData */
|
|
16
|
+
schemaURI: string;
|
|
17
|
+
/** Minimum price in USDC base units (6 decimals) */
|
|
18
|
+
minPrice: bigint;
|
|
19
|
+
/** Maximum price in USDC base units */
|
|
20
|
+
maxPrice: bigint;
|
|
21
|
+
/** Average completion time in seconds */
|
|
22
|
+
avgCompletionTime: number;
|
|
23
|
+
/** IPFS CID to full service descriptor JSON */
|
|
24
|
+
metadataCID: string;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Agent profile stored on-chain
|
|
29
|
+
*/
|
|
30
|
+
export interface AgentProfile {
|
|
31
|
+
/** Agent's Ethereum address (controller of DID) */
|
|
32
|
+
agentAddress: string;
|
|
33
|
+
/** Full DID (e.g., did:ethr:8453:0x...) */
|
|
34
|
+
did: string;
|
|
35
|
+
/** HTTPS endpoint or IPFS gateway URL */
|
|
36
|
+
endpoint: string;
|
|
37
|
+
/** Supported service type hashes */
|
|
38
|
+
serviceTypes: string[];
|
|
39
|
+
/** USDC staked (V1: always 0, V2: slashing for disputes) */
|
|
40
|
+
stakedAmount: bigint;
|
|
41
|
+
/** Aggregated reputation (scale: 0-10000, 2 decimals precision) */
|
|
42
|
+
reputationScore: number;
|
|
43
|
+
/** Count of completed SETTLED transactions */
|
|
44
|
+
totalTransactions: number;
|
|
45
|
+
/** Count of transactions that went to DISPUTED state */
|
|
46
|
+
disputedTransactions: number;
|
|
47
|
+
/** Cumulative transaction volume (6 decimals) */
|
|
48
|
+
totalVolumeUSDC: bigint;
|
|
49
|
+
/** Block timestamp of registration */
|
|
50
|
+
registeredAt: number;
|
|
51
|
+
/** Last profile update timestamp */
|
|
52
|
+
updatedAt: number;
|
|
53
|
+
/** Agent is accepting new requests */
|
|
54
|
+
isActive: boolean;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Parameters for registering a new agent
|
|
59
|
+
*/
|
|
60
|
+
export interface RegisterAgentParams {
|
|
61
|
+
/** HTTPS endpoint or IPFS gateway URL */
|
|
62
|
+
endpoint: string;
|
|
63
|
+
/** List of services the agent provides */
|
|
64
|
+
serviceDescriptors: ServiceDescriptor[];
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* Query parameters for finding agents by service
|
|
69
|
+
*/
|
|
70
|
+
export interface QueryAgentsParams {
|
|
71
|
+
/** Service type hash to search for */
|
|
72
|
+
serviceTypeHash: string;
|
|
73
|
+
/** Minimum reputation score (0-10000) */
|
|
74
|
+
minReputation?: number;
|
|
75
|
+
/** Skip first N results (for pagination) */
|
|
76
|
+
offset?: number;
|
|
77
|
+
/** Maximum number of results to return */
|
|
78
|
+
limit?: number;
|
|
79
|
+
}
|
package/src/types/did.ts
ADDED
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DID (Decentralized Identity) Types - AIP-7 §2
|
|
3
|
+
*
|
|
4
|
+
* Implements W3C DID specification for Ethereum-based identities
|
|
5
|
+
* using the did:ethr method with ERC-1056 registry
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* DID format: did:ethr:<chainId>:<address>
|
|
10
|
+
* Example: did:ethr:84532:0x742d35cc6634c0532925a3b844bc9e7595f0beb
|
|
11
|
+
*/
|
|
12
|
+
export type DID = string;
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* W3C DID Document structure
|
|
16
|
+
* @see https://www.w3.org/TR/did-core/
|
|
17
|
+
*/
|
|
18
|
+
export interface DIDDocument {
|
|
19
|
+
'@context': string | string[];
|
|
20
|
+
id: DID;
|
|
21
|
+
verificationMethod?: VerificationMethod[];
|
|
22
|
+
authentication?: (string | VerificationMethod)[];
|
|
23
|
+
assertionMethod?: (string | VerificationMethod)[];
|
|
24
|
+
keyAgreement?: (string | VerificationMethod)[];
|
|
25
|
+
capabilityInvocation?: (string | VerificationMethod)[];
|
|
26
|
+
capabilityDelegation?: (string | VerificationMethod)[];
|
|
27
|
+
service?: ServiceEndpoint[];
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Verification method for cryptographic key
|
|
32
|
+
*/
|
|
33
|
+
export interface VerificationMethod {
|
|
34
|
+
id: string;
|
|
35
|
+
type: string;
|
|
36
|
+
controller: DID;
|
|
37
|
+
blockchainAccountId?: string; // CAIP-10 format: address@eip155:chainId
|
|
38
|
+
publicKeyHex?: string;
|
|
39
|
+
publicKeyBase58?: string;
|
|
40
|
+
publicKeyMultibase?: string;
|
|
41
|
+
ethereumAddress?: string;
|
|
42
|
+
validTo?: number | bigint; // Unix timestamp for delegate validity (ERC-1056)
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Service endpoint in DID Document
|
|
47
|
+
*/
|
|
48
|
+
export interface ServiceEndpoint {
|
|
49
|
+
id: string;
|
|
50
|
+
type: string;
|
|
51
|
+
serviceEndpoint: string | string[] | Record<string, unknown>;
|
|
52
|
+
description?: string;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* DID Resolution result
|
|
57
|
+
*/
|
|
58
|
+
export interface DIDResolutionResult {
|
|
59
|
+
didDocument: DIDDocument | null;
|
|
60
|
+
didResolutionMetadata: DIDResolutionMetadata;
|
|
61
|
+
didDocumentMetadata: DIDDocumentMetadata;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* DID Resolution metadata
|
|
66
|
+
*/
|
|
67
|
+
export interface DIDResolutionMetadata {
|
|
68
|
+
contentType?: string;
|
|
69
|
+
error?: 'invalidDid' | 'notFound' | 'representationNotSupported' | 'unsupportedDidMethod' | string;
|
|
70
|
+
message?: string;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* DID Document metadata
|
|
75
|
+
*/
|
|
76
|
+
export interface DIDDocumentMetadata {
|
|
77
|
+
created?: string;
|
|
78
|
+
updated?: string;
|
|
79
|
+
deactivated?: boolean;
|
|
80
|
+
versionId?: string;
|
|
81
|
+
nextUpdate?: string;
|
|
82
|
+
nextVersionId?: string;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* Configuration for DID Resolver
|
|
87
|
+
*/
|
|
88
|
+
export interface DIDResolverConfig {
|
|
89
|
+
/**
|
|
90
|
+
* Network to use (base-sepolia or base-mainnet)
|
|
91
|
+
*/
|
|
92
|
+
network?: string;
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
* Custom RPC URL (overrides network default)
|
|
96
|
+
*/
|
|
97
|
+
rpcUrl?: string;
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* Custom Identity Registry address (overrides network default)
|
|
101
|
+
*/
|
|
102
|
+
registryAddress?: string;
|
|
103
|
+
|
|
104
|
+
/**
|
|
105
|
+
* Chain ID (required if not using predefined network)
|
|
106
|
+
*/
|
|
107
|
+
chainId?: number;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
/**
|
|
111
|
+
* Parsed DID components
|
|
112
|
+
*/
|
|
113
|
+
export interface ParsedDID {
|
|
114
|
+
method: string; // Always 'ethr' for AGIRAILS
|
|
115
|
+
chainId: number;
|
|
116
|
+
address: string; // Lowercase checksummed address
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
/**
|
|
120
|
+
* ERC-1056 Identity Changed Event
|
|
121
|
+
*/
|
|
122
|
+
export interface DIDOwnerChangedEvent {
|
|
123
|
+
identity: string;
|
|
124
|
+
owner: string;
|
|
125
|
+
previousChange: bigint;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
/**
|
|
129
|
+
* ERC-1056 Delegate Changed Event
|
|
130
|
+
*/
|
|
131
|
+
export interface DIDDelegateChangedEvent {
|
|
132
|
+
identity: string;
|
|
133
|
+
delegateType: string; // bytes32 as hex string
|
|
134
|
+
delegate: string;
|
|
135
|
+
validTo: bigint;
|
|
136
|
+
previousChange: bigint;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
/**
|
|
140
|
+
* ERC-1056 Attribute Changed Event
|
|
141
|
+
*/
|
|
142
|
+
export interface DIDAttributeChangedEvent {
|
|
143
|
+
identity: string;
|
|
144
|
+
name: string; // bytes32 as hex string
|
|
145
|
+
value: Uint8Array;
|
|
146
|
+
validTo: bigint;
|
|
147
|
+
previousChange: bigint;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
/**
|
|
151
|
+
* Delegate types for ERC-1056
|
|
152
|
+
*/
|
|
153
|
+
export enum DelegateType {
|
|
154
|
+
/** Can sign on behalf of identity */
|
|
155
|
+
SIGNING = 'veriKey',
|
|
156
|
+
|
|
157
|
+
/** Can encrypt messages for identity */
|
|
158
|
+
ENCRYPTION = 'encryptionKey',
|
|
159
|
+
|
|
160
|
+
/** Can perform general actions */
|
|
161
|
+
GENERAL = 'delegate',
|
|
162
|
+
|
|
163
|
+
/** Custom delegate type */
|
|
164
|
+
CUSTOM = 'custom'
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
/**
|
|
168
|
+
* Attribute names for ERC-1056
|
|
169
|
+
*/
|
|
170
|
+
export enum AttributeName {
|
|
171
|
+
/** Service endpoint (e.g., AGIRAILS API endpoint) */
|
|
172
|
+
SERVICE_ENDPOINT = 'did/svc/AGIRAILSProvider',
|
|
173
|
+
|
|
174
|
+
/** Public key for verification */
|
|
175
|
+
PUBLIC_KEY = 'did/pub/Secp256k1/veriKey',
|
|
176
|
+
|
|
177
|
+
/** Encryption public key */
|
|
178
|
+
ENCRYPTION_KEY = 'did/pub/X25519/enc',
|
|
179
|
+
|
|
180
|
+
/** Custom attribute */
|
|
181
|
+
CUSTOM = 'custom'
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
/**
|
|
185
|
+
* Options for DID signature verification
|
|
186
|
+
*/
|
|
187
|
+
export interface VerifySignatureOptions {
|
|
188
|
+
/** Chain ID to verify against (prevents cross-chain replay) */
|
|
189
|
+
chainId: number;
|
|
190
|
+
|
|
191
|
+
/** Expected DID (optional additional check) */
|
|
192
|
+
expectedDID?: DID;
|
|
193
|
+
|
|
194
|
+
/** Timestamp for delegate validity check */
|
|
195
|
+
timestamp?: number;
|
|
196
|
+
|
|
197
|
+
/**
|
|
198
|
+
* Use domain separation to prevent cross-protocol replay attacks
|
|
199
|
+
* Default: true (recommended for security)
|
|
200
|
+
* Set to false only for backwards compatibility with old signatures
|
|
201
|
+
*/
|
|
202
|
+
useDomainSeparation?: boolean;
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
/**
|
|
206
|
+
* Result of signature verification
|
|
207
|
+
*/
|
|
208
|
+
export interface SignatureVerificationResult {
|
|
209
|
+
/** Whether signature is valid */
|
|
210
|
+
valid: boolean;
|
|
211
|
+
|
|
212
|
+
/** Recovered signer address */
|
|
213
|
+
signer?: string;
|
|
214
|
+
|
|
215
|
+
/** Error message if verification failed */
|
|
216
|
+
error?: string;
|
|
217
|
+
|
|
218
|
+
/** Whether signer is a delegate (not the owner) */
|
|
219
|
+
isDelegate?: boolean;
|
|
220
|
+
|
|
221
|
+
/** Delegate type if signer is a delegate */
|
|
222
|
+
delegateType?: string;
|
|
223
|
+
}
|
package/src/types/escrow.ts
CHANGED
|
@@ -2,25 +2,26 @@
|
|
|
2
2
|
* Escrow creation parameters
|
|
3
3
|
*/
|
|
4
4
|
export interface CreateEscrowParams {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
/** Escrow identifier (bytes32). In ACTP standard this is typically the txId. */
|
|
6
|
+
escrowId: string;
|
|
7
|
+
/** Consumer/requester who funds the escrow */
|
|
8
|
+
requester: string;
|
|
9
|
+
/** Provider who receives payout on settlement */
|
|
10
|
+
provider: string;
|
|
11
|
+
/** Amount locked in escrow (USDC wei, 6 decimals) */
|
|
8
12
|
amount: bigint;
|
|
9
|
-
beneficiary: string;
|
|
10
13
|
}
|
|
11
14
|
|
|
12
15
|
/**
|
|
13
|
-
* Escrow state
|
|
16
|
+
* Escrow state (matches on-chain EscrowVault.EscrowData struct)
|
|
14
17
|
*/
|
|
15
18
|
export interface Escrow {
|
|
16
19
|
escrowId: string;
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
token: string;
|
|
20
|
+
requester: string;
|
|
21
|
+
provider: string;
|
|
20
22
|
amount: bigint;
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
released: boolean;
|
|
23
|
+
releasedAmount: bigint;
|
|
24
|
+
active: boolean;
|
|
24
25
|
}
|
|
25
26
|
|
|
26
27
|
|
package/src/types/index.ts
CHANGED
|
@@ -7,4 +7,8 @@ export * from './transaction';
|
|
|
7
7
|
export * from './escrow';
|
|
8
8
|
export * from './message';
|
|
9
9
|
export * from './eip712';
|
|
10
|
-
|
|
10
|
+
export * from './agent';
|
|
11
|
+
export * from './did';
|
|
12
|
+
// Note: storage and archive types are not yet implemented in this version
|
|
13
|
+
// export * from './storage';
|
|
14
|
+
// export * from './archive';
|
package/src/types/state.ts
CHANGED
|
@@ -17,14 +17,23 @@ export enum State {
|
|
|
17
17
|
export class StateMachine {
|
|
18
18
|
/**
|
|
19
19
|
* Valid state transitions per Yellow Paper §3.2.2
|
|
20
|
+
*
|
|
21
|
+
* SECURITY FIX (CRITICAL-1): State machine must match ACTPKernel contract exactly
|
|
22
|
+
* Per CLAUDE.md §Architecture Overview - ACTP Protocol State Machine:
|
|
23
|
+
* - COMMITTED can transition to IN_PROGRESS, DELIVERED, or CANCELLED
|
|
24
|
+
* - IN_PROGRESS can transition to DELIVERED or CANCELLED (not DISPUTED)
|
|
25
|
+
* - DISPUTED can only transition to SETTLED (not CANCELLED)
|
|
20
26
|
*/
|
|
21
27
|
private static readonly TRANSITIONS: Record<State, State[]> = {
|
|
22
28
|
[State.INITIATED]: [State.QUOTED, State.COMMITTED, State.CANCELLED], // Allow direct INITIATED → COMMITTED (AIP-3)
|
|
23
29
|
[State.QUOTED]: [State.COMMITTED, State.CANCELLED],
|
|
24
|
-
|
|
25
|
-
[State.
|
|
30
|
+
// SECURITY FIX (CRITICAL-1): Add DELIVERED (can skip IN_PROGRESS)
|
|
31
|
+
[State.COMMITTED]: [State.IN_PROGRESS, State.DELIVERED, State.CANCELLED],
|
|
32
|
+
// SECURITY FIX (CRITICAL-1): Remove DISPUTED, add CANCELLED
|
|
33
|
+
[State.IN_PROGRESS]: [State.DELIVERED, State.CANCELLED],
|
|
26
34
|
[State.DELIVERED]: [State.SETTLED, State.DISPUTED],
|
|
27
|
-
|
|
35
|
+
// SECURITY FIX (CRITICAL-1): Remove CANCELLED (disputes resolve to SETTLED only)
|
|
36
|
+
[State.DISPUTED]: [State.SETTLED],
|
|
28
37
|
[State.SETTLED]: [], // Terminal state
|
|
29
38
|
[State.CANCELLED]: [] // Terminal state
|
|
30
39
|
};
|
package/src/types/transaction.ts
CHANGED
|
@@ -11,11 +11,15 @@ export interface Transaction {
|
|
|
11
11
|
amount: bigint;
|
|
12
12
|
state: State;
|
|
13
13
|
createdAt: number;
|
|
14
|
+
updatedAt: number;
|
|
14
15
|
deadline: number;
|
|
15
16
|
disputeWindow: number;
|
|
16
17
|
escrowContract: string;
|
|
17
18
|
escrowId: string;
|
|
19
|
+
serviceHash: string;
|
|
20
|
+
attestationUID: string;
|
|
18
21
|
metadata: string;
|
|
22
|
+
platformFeeBpsLocked: number;
|
|
19
23
|
}
|
|
20
24
|
|
|
21
25
|
/**
|
|
@@ -51,4 +55,3 @@ export interface EconomicParams {
|
|
|
51
55
|
providerPenaltyBps: number;
|
|
52
56
|
}
|
|
53
57
|
|
|
54
|
-
|