@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,260 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* IntermediateAdapter - Balanced API for developers with some protocol knowledge
|
|
4
|
+
*
|
|
5
|
+
* Provides more control than BeginnerAdapter while still offering convenience:
|
|
6
|
+
* - Explicit transaction lifecycle methods
|
|
7
|
+
* - Direct escrow operations
|
|
8
|
+
* - State transition control
|
|
9
|
+
*
|
|
10
|
+
* Use this adapter when you need fine-grained control but still want
|
|
11
|
+
* user-friendly input parsing and validation.
|
|
12
|
+
*
|
|
13
|
+
* @module adapters/IntermediateAdapter
|
|
14
|
+
*/
|
|
15
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
+
exports.IntermediateAdapter = void 0;
|
|
17
|
+
const BaseAdapter_1 = require("./BaseAdapter");
|
|
18
|
+
/**
|
|
19
|
+
* IntermediateAdapter - Balanced API for transaction lifecycle control.
|
|
20
|
+
*
|
|
21
|
+
* Provides explicit methods for each stage of the ACTP lifecycle:
|
|
22
|
+
* - `createTransaction()` - Create transaction without escrow
|
|
23
|
+
* - `linkEscrow()` - Link escrow (auto-transitions to COMMITTED)
|
|
24
|
+
* - `transitionState()` - Manually transition state
|
|
25
|
+
* - `releaseEscrow()` - Release funds to provider
|
|
26
|
+
* - `getEscrowBalance()` - Check escrow balance
|
|
27
|
+
* - `getTransaction()` - Get transaction details
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* ```typescript
|
|
31
|
+
* const client = await ACTPClient.create({ mode: 'mock' });
|
|
32
|
+
*
|
|
33
|
+
* // Create transaction (INITIATED state)
|
|
34
|
+
* const txId = await client.intermediate.createTransaction({
|
|
35
|
+
* provider: '0xProvider123',
|
|
36
|
+
* amount: '100',
|
|
37
|
+
* deadline: '+7d',
|
|
38
|
+
* });
|
|
39
|
+
*
|
|
40
|
+
* // Link escrow (auto-transitions to COMMITTED)
|
|
41
|
+
* await client.intermediate.linkEscrow(txId, '100');
|
|
42
|
+
*
|
|
43
|
+
* // Provider delivers
|
|
44
|
+
* await client.intermediate.transitionState(txId, 'DELIVERED');
|
|
45
|
+
*
|
|
46
|
+
* // Release funds after dispute window
|
|
47
|
+
* await client.intermediate.releaseEscrow(escrowId);
|
|
48
|
+
* ```
|
|
49
|
+
*/
|
|
50
|
+
class IntermediateAdapter extends BaseAdapter_1.BaseAdapter {
|
|
51
|
+
/**
|
|
52
|
+
* Creates a new IntermediateAdapter instance.
|
|
53
|
+
*
|
|
54
|
+
* @param runtime - ACTP runtime implementation (MockRuntime or BlockchainRuntime)
|
|
55
|
+
* @param requesterAddress - The requester's Ethereum address
|
|
56
|
+
* @param easHelper - Optional EAS helper for attestation verification (SECURITY FIX C-4)
|
|
57
|
+
*/
|
|
58
|
+
constructor(runtime, requesterAddress, easHelper) {
|
|
59
|
+
super(requesterAddress);
|
|
60
|
+
this.runtime = runtime;
|
|
61
|
+
this.easHelper = easHelper;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Create a transaction (INITIATED state, no escrow yet).
|
|
65
|
+
*
|
|
66
|
+
* Unlike `beginner.pay()`, this only creates the transaction
|
|
67
|
+
* without linking escrow. You must call `linkEscrow()` separately.
|
|
68
|
+
*
|
|
69
|
+
* @param params - Transaction parameters
|
|
70
|
+
* @returns Transaction ID
|
|
71
|
+
* @throws {ValidationError} If inputs are invalid
|
|
72
|
+
*
|
|
73
|
+
* @example
|
|
74
|
+
* ```typescript
|
|
75
|
+
* const txId = await adapter.createTransaction({
|
|
76
|
+
* provider: '0xProvider123',
|
|
77
|
+
* amount: '100',
|
|
78
|
+
* deadline: '+24h',
|
|
79
|
+
* });
|
|
80
|
+
* ```
|
|
81
|
+
*/
|
|
82
|
+
async createTransaction(params) {
|
|
83
|
+
const provider = this.validateAddress(params.provider, 'provider');
|
|
84
|
+
const amount = this.parseAmount(params.amount);
|
|
85
|
+
const currentTime = this.runtime.time.now();
|
|
86
|
+
const deadline = this.parseDeadline(params.deadline, currentTime);
|
|
87
|
+
// SECURITY FIX (L-1): Validate dispute window bounds
|
|
88
|
+
const disputeWindow = this.validateDisputeWindow(params.disputeWindow);
|
|
89
|
+
const requester = this.requesterAddress;
|
|
90
|
+
// Validation
|
|
91
|
+
if (requester.toLowerCase() === provider.toLowerCase()) {
|
|
92
|
+
throw new BaseAdapter_1.ValidationError('Cannot create transaction with yourself as provider');
|
|
93
|
+
}
|
|
94
|
+
if (deadline <= currentTime) {
|
|
95
|
+
throw new BaseAdapter_1.ValidationError('Deadline must be in the future');
|
|
96
|
+
}
|
|
97
|
+
return this.runtime.createTransaction({
|
|
98
|
+
provider,
|
|
99
|
+
requester,
|
|
100
|
+
amount: amount.toString(),
|
|
101
|
+
deadline,
|
|
102
|
+
disputeWindow,
|
|
103
|
+
serviceDescription: params.serviceDescription,
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Link escrow to a transaction.
|
|
108
|
+
*
|
|
109
|
+
* Automatically transitions INITIATED or QUOTED → COMMITTED.
|
|
110
|
+
* Deducts funds from requester and locks in escrow.
|
|
111
|
+
*
|
|
112
|
+
* @param txId - Transaction ID
|
|
113
|
+
* @returns Escrow ID
|
|
114
|
+
* @throws {Error} If transaction not found or in wrong state
|
|
115
|
+
*
|
|
116
|
+
* @example
|
|
117
|
+
* ```typescript
|
|
118
|
+
* const escrowId = await adapter.linkEscrow(txId);
|
|
119
|
+
* ```
|
|
120
|
+
*/
|
|
121
|
+
async linkEscrow(txId) {
|
|
122
|
+
const tx = await this.runtime.getTransaction(txId);
|
|
123
|
+
if (!tx) {
|
|
124
|
+
throw new Error(`Transaction ${txId} not found`);
|
|
125
|
+
}
|
|
126
|
+
// Use the transaction's amount (already in correct format)
|
|
127
|
+
return this.runtime.linkEscrow(txId, tx.amount);
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Transition transaction to a new state.
|
|
131
|
+
*
|
|
132
|
+
* Validates the transition against the ACTP 8-state machine.
|
|
133
|
+
*
|
|
134
|
+
* Valid transitions:
|
|
135
|
+
* - INITIATED → QUOTED, COMMITTED, CANCELLED
|
|
136
|
+
* - QUOTED → COMMITTED, CANCELLED
|
|
137
|
+
* - COMMITTED → IN_PROGRESS, DELIVERED, CANCELLED
|
|
138
|
+
* - IN_PROGRESS → DELIVERED, CANCELLED
|
|
139
|
+
* - DELIVERED → SETTLED, DISPUTED
|
|
140
|
+
* - DISPUTED → SETTLED
|
|
141
|
+
*
|
|
142
|
+
* @param txId - Transaction ID
|
|
143
|
+
* @param newState - Target state
|
|
144
|
+
* @throws {Error} If transition is invalid
|
|
145
|
+
*
|
|
146
|
+
* @example
|
|
147
|
+
* ```typescript
|
|
148
|
+
* // Provider marks work as delivered
|
|
149
|
+
* await adapter.transitionState(txId, 'DELIVERED');
|
|
150
|
+
* ```
|
|
151
|
+
*/
|
|
152
|
+
async transitionState(txId, newState) {
|
|
153
|
+
return this.runtime.transitionState(txId, newState);
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Release escrow funds to the provider.
|
|
157
|
+
*
|
|
158
|
+
* Can only be called when transaction is in DELIVERED state
|
|
159
|
+
* and dispute window has expired.
|
|
160
|
+
*
|
|
161
|
+
* SECURITY FIX (C-4 + HIGH-5): MANDATORY attestation verification before release.
|
|
162
|
+
* When EASHelper is available (testnet/mainnet modes), attestation verification
|
|
163
|
+
* is REQUIRED - not optional. This prevents releasing funds without proper
|
|
164
|
+
* delivery proof.
|
|
165
|
+
*
|
|
166
|
+
* Verifications performed:
|
|
167
|
+
* - Attestation exists and is not revoked
|
|
168
|
+
* - Attestation belongs to this transaction (prevents replay attacks)
|
|
169
|
+
* - Attestation has not been used for a different transaction
|
|
170
|
+
*
|
|
171
|
+
* @param escrowId - Escrow ID
|
|
172
|
+
* @param attestationParams - Attestation verification params (REQUIRED when EASHelper available)
|
|
173
|
+
* @param attestationParams.txId - Transaction ID (bytes32)
|
|
174
|
+
* @param attestationParams.attestationUID - Attestation UID (bytes32)
|
|
175
|
+
* @throws {Error} If escrow not found or dispute window active
|
|
176
|
+
* @throws {Error} If EASHelper is available but attestationParams not provided (HIGH-5)
|
|
177
|
+
* @throws {Error} If attestation verification fails
|
|
178
|
+
*
|
|
179
|
+
* @example
|
|
180
|
+
* ```typescript
|
|
181
|
+
* // With attestation verification (REQUIRED in testnet/mainnet)
|
|
182
|
+
* await adapter.releaseEscrow(escrowId, {
|
|
183
|
+
* txId: '0x...',
|
|
184
|
+
* attestationUID: '0x...'
|
|
185
|
+
* });
|
|
186
|
+
*
|
|
187
|
+
* // Mock mode only (no attestation required)
|
|
188
|
+
* await adapter.releaseEscrow(escrowId);
|
|
189
|
+
* ```
|
|
190
|
+
*/
|
|
191
|
+
async releaseEscrow(escrowId, attestationParams) {
|
|
192
|
+
// Determine whether the underlying runtime requires attestation.
|
|
193
|
+
// BlockchainRuntime exposes isAttestationRequired(), but it's not part of the generic interface.
|
|
194
|
+
const runtimeAny = this.runtime;
|
|
195
|
+
const runtimeSupportsAttestationFlag = typeof runtimeAny?.isAttestationRequired === 'function';
|
|
196
|
+
const attestationRequired = runtimeSupportsAttestationFlag
|
|
197
|
+
? Boolean(runtimeAny.isAttestationRequired())
|
|
198
|
+
: Boolean(this.easHelper);
|
|
199
|
+
if (attestationRequired && !attestationParams) {
|
|
200
|
+
throw new Error('Attestation verification is REQUIRED for escrow release. ' +
|
|
201
|
+
'Provide attestationParams: { txId: string, attestationUID: string }.');
|
|
202
|
+
}
|
|
203
|
+
// If caller provided attestation params, ensure they match the escrow/tx being released.
|
|
204
|
+
if (attestationParams) {
|
|
205
|
+
// Support legacy escrowId format "escrow-{txId}-{timestamp}".
|
|
206
|
+
// Standard is escrowId === txId.
|
|
207
|
+
const legacyMatch = escrowId.match(/^escrow-(.+)-\d+$/);
|
|
208
|
+
const txIdFromEscrowId = legacyMatch ? legacyMatch[1] : escrowId;
|
|
209
|
+
if (txIdFromEscrowId.toLowerCase() !== attestationParams.txId.toLowerCase()) {
|
|
210
|
+
throw new Error(`Attestation txId (${attestationParams.txId}) does not match escrow/txId (${txIdFromEscrowId}). ` +
|
|
211
|
+
`Refusing to release escrow with mismatched attestation.`);
|
|
212
|
+
}
|
|
213
|
+
// If runtime does NOT handle attestation internally but EASHelper exists, verify here.
|
|
214
|
+
// Otherwise, pass attestationUID down so BlockchainRuntime can enforce/record.
|
|
215
|
+
if (!runtimeSupportsAttestationFlag && this.easHelper) {
|
|
216
|
+
await this.easHelper.verifyAndRecordForRelease(attestationParams.txId, attestationParams.attestationUID);
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
return this.runtime.releaseEscrow(escrowId, attestationParams?.attestationUID);
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* Get escrow balance.
|
|
223
|
+
*
|
|
224
|
+
* Returns formatted balance string (e.g., "100.00 USDC").
|
|
225
|
+
*
|
|
226
|
+
* @param escrowId - Escrow ID
|
|
227
|
+
* @returns Formatted balance
|
|
228
|
+
* @throws {Error} If escrow not found
|
|
229
|
+
*
|
|
230
|
+
* @example
|
|
231
|
+
* ```typescript
|
|
232
|
+
* const balance = await adapter.getEscrowBalance(escrowId);
|
|
233
|
+
* console.log(balance); // "100.00 USDC"
|
|
234
|
+
* ```
|
|
235
|
+
*/
|
|
236
|
+
async getEscrowBalance(escrowId) {
|
|
237
|
+
const balance = await this.runtime.getEscrowBalance(escrowId);
|
|
238
|
+
return this.formatAmount(balance);
|
|
239
|
+
}
|
|
240
|
+
/**
|
|
241
|
+
* Get transaction details.
|
|
242
|
+
*
|
|
243
|
+
* Returns the full transaction object from the runtime.
|
|
244
|
+
*
|
|
245
|
+
* @param txId - Transaction ID
|
|
246
|
+
* @returns Transaction object or null if not found
|
|
247
|
+
*
|
|
248
|
+
* @example
|
|
249
|
+
* ```typescript
|
|
250
|
+
* const tx = await adapter.getTransaction(txId);
|
|
251
|
+
* console.log('State:', tx?.state);
|
|
252
|
+
* console.log('Amount:', tx?.amount);
|
|
253
|
+
* ```
|
|
254
|
+
*/
|
|
255
|
+
async getTransaction(txId) {
|
|
256
|
+
return this.runtime.getTransaction(txId);
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
exports.IntermediateAdapter = IntermediateAdapter;
|
|
260
|
+
//# sourceMappingURL=IntermediateAdapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IntermediateAdapter.js","sourceRoot":"","sources":["../../src/adapters/IntermediateAdapter.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;;;AAEH,+CAA6F;AA2B7F;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,MAAa,mBAAoB,SAAQ,yBAAW;IAClD;;;;;;OAMG;IACH,YACU,OAAqB,EAC7B,gBAAwB,EAChB,SAAqB;QAE7B,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAJhB,YAAO,GAAP,OAAO,CAAc;QAErB,cAAS,GAAT,SAAS,CAAY;IAG/B,CAAC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACH,KAAK,CAAC,iBAAiB,CAAC,MAAqC;QAC3D,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QACnE,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC/C,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QAClE,qDAAqD;QACrD,MAAM,aAAa,GAAG,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QAEvE,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAExC,aAAa;QACb,IAAI,SAAS,CAAC,WAAW,EAAE,KAAK,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC;YACvD,MAAM,IAAI,6BAAe,CAAC,qDAAqD,CAAC,CAAC;QACnF,CAAC;QAED,IAAI,QAAQ,IAAI,WAAW,EAAE,CAAC;YAC5B,MAAM,IAAI,6BAAe,CAAC,gCAAgC,CAAC,CAAC;QAC9D,CAAC;QAED,OAAO,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC;YACpC,QAAQ;YACR,SAAS;YACT,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE;YACzB,QAAQ;YACR,aAAa;YACb,kBAAkB,EAAE,MAAM,CAAC,kBAAkB;SAC9C,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,KAAK,CAAC,UAAU,CAAC,IAAY;QAC3B,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAEnD,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,MAAM,IAAI,KAAK,CAAC,eAAe,IAAI,YAAY,CAAC,CAAC;QACnD,CAAC;QAED,2DAA2D;QAC3D,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;IAClD,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,KAAK,CAAC,eAAe,CAAC,IAAY,EAAE,QAA0B;QAC5D,OAAO,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACtD,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAmCG;IACH,KAAK,CAAC,aAAa,CACjB,QAAgB,EAChB,iBAA4D;QAE5D,iEAAiE;QACjE,iGAAiG;QACjG,MAAM,UAAU,GAAG,IAAI,CAAC,OAAc,CAAC;QACvC,MAAM,8BAA8B,GAClC,OAAO,UAAU,EAAE,qBAAqB,KAAK,UAAU,CAAC;QAE1D,MAAM,mBAAmB,GAAY,8BAA8B;YACjE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAC;YAC7C,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAE5B,IAAI,mBAAmB,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC9C,MAAM,IAAI,KAAK,CACb,2DAA2D;gBACzD,sEAAsE,CACzE,CAAC;QACJ,CAAC;QAED,yFAAyF;QACzF,IAAI,iBAAiB,EAAE,CAAC;YACtB,8DAA8D;YAC9D,iCAAiC;YACjC,MAAM,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;YACxD,MAAM,gBAAgB,GAAG,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YAEjE,IAAI,gBAAgB,CAAC,WAAW,EAAE,KAAK,iBAAiB,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;gBAC5E,MAAM,IAAI,KAAK,CACb,qBAAqB,iBAAiB,CAAC,IAAI,iCAAiC,gBAAgB,KAAK;oBAC/F,yDAAyD,CAC5D,CAAC;YACJ,CAAC;YAED,uFAAuF;YACvF,+EAA+E;YAC/E,IAAI,CAAC,8BAA8B,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACtD,MAAM,IAAI,CAAC,SAAS,CAAC,yBAAyB,CAC5C,iBAAiB,CAAC,IAAI,EACtB,iBAAiB,CAAC,cAAc,CACjC,CAAC;YACJ,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAC/B,QAAQ,EACR,iBAAiB,EAAE,cAAc,CAClC,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,KAAK,CAAC,gBAAgB,CAAC,QAAgB;QACrC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAC9D,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,KAAK,CAAC,cAAc,CAAC,IAAY;QAC/B,OAAO,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;CACF;AAlPD,kDAkPC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Adapter Layer - Bridges user-friendly API to protocol-level SDK
|
|
3
|
+
*
|
|
4
|
+
* This module exports all adapter classes and types for the Three-Level API:
|
|
5
|
+
* - BaseAdapter: Abstract base with shared utilities
|
|
6
|
+
* - BeginnerAdapter: High-level, opinionated API
|
|
7
|
+
* - IntermediateAdapter: Balanced control API
|
|
8
|
+
*
|
|
9
|
+
* @module adapters
|
|
10
|
+
*/
|
|
11
|
+
export { BaseAdapter, ValidationError, DEFAULT_DISPUTE_WINDOW_SECONDS, DEFAULT_DEADLINE_SECONDS, MIN_AMOUNT_WEI, MAX_DEADLINE_HOURS, MAX_DEADLINE_DAYS, } from './BaseAdapter';
|
|
12
|
+
export { BeginnerAdapter, BeginnerPayParams, BeginnerPayResult } from './BeginnerAdapter';
|
|
13
|
+
export { IntermediateAdapter, IntermediateTransactionParams } from './IntermediateAdapter';
|
|
14
|
+
export { IACTPRuntime, CreateTransactionParams } from '../runtime/IACTPRuntime';
|
|
15
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/adapters/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EACL,WAAW,EACX,eAAe,EACf,8BAA8B,EAC9B,wBAAwB,EACxB,cAAc,EACd,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC1F,OAAO,EAAE,mBAAmB,EAAE,6BAA6B,EAAE,MAAM,uBAAuB,CAAC;AAG3F,OAAO,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Adapter Layer - Bridges user-friendly API to protocol-level SDK
|
|
4
|
+
*
|
|
5
|
+
* This module exports all adapter classes and types for the Three-Level API:
|
|
6
|
+
* - BaseAdapter: Abstract base with shared utilities
|
|
7
|
+
* - BeginnerAdapter: High-level, opinionated API
|
|
8
|
+
* - IntermediateAdapter: Balanced control API
|
|
9
|
+
*
|
|
10
|
+
* @module adapters
|
|
11
|
+
*/
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.IntermediateAdapter = exports.BeginnerAdapter = exports.MAX_DEADLINE_DAYS = exports.MAX_DEADLINE_HOURS = exports.MIN_AMOUNT_WEI = exports.DEFAULT_DEADLINE_SECONDS = exports.DEFAULT_DISPUTE_WINDOW_SECONDS = exports.ValidationError = exports.BaseAdapter = void 0;
|
|
14
|
+
var BaseAdapter_1 = require("./BaseAdapter");
|
|
15
|
+
Object.defineProperty(exports, "BaseAdapter", { enumerable: true, get: function () { return BaseAdapter_1.BaseAdapter; } });
|
|
16
|
+
Object.defineProperty(exports, "ValidationError", { enumerable: true, get: function () { return BaseAdapter_1.ValidationError; } });
|
|
17
|
+
Object.defineProperty(exports, "DEFAULT_DISPUTE_WINDOW_SECONDS", { enumerable: true, get: function () { return BaseAdapter_1.DEFAULT_DISPUTE_WINDOW_SECONDS; } });
|
|
18
|
+
Object.defineProperty(exports, "DEFAULT_DEADLINE_SECONDS", { enumerable: true, get: function () { return BaseAdapter_1.DEFAULT_DEADLINE_SECONDS; } });
|
|
19
|
+
Object.defineProperty(exports, "MIN_AMOUNT_WEI", { enumerable: true, get: function () { return BaseAdapter_1.MIN_AMOUNT_WEI; } });
|
|
20
|
+
Object.defineProperty(exports, "MAX_DEADLINE_HOURS", { enumerable: true, get: function () { return BaseAdapter_1.MAX_DEADLINE_HOURS; } });
|
|
21
|
+
Object.defineProperty(exports, "MAX_DEADLINE_DAYS", { enumerable: true, get: function () { return BaseAdapter_1.MAX_DEADLINE_DAYS; } });
|
|
22
|
+
var BeginnerAdapter_1 = require("./BeginnerAdapter");
|
|
23
|
+
Object.defineProperty(exports, "BeginnerAdapter", { enumerable: true, get: function () { return BeginnerAdapter_1.BeginnerAdapter; } });
|
|
24
|
+
var IntermediateAdapter_1 = require("./IntermediateAdapter");
|
|
25
|
+
Object.defineProperty(exports, "IntermediateAdapter", { enumerable: true, get: function () { return IntermediateAdapter_1.IntermediateAdapter; } });
|
|
26
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/adapters/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;AAEH,6CAQuB;AAPrB,0GAAA,WAAW,OAAA;AACX,8GAAA,eAAe,OAAA;AACf,6HAAA,8BAA8B,OAAA;AAC9B,uHAAA,wBAAwB,OAAA;AACxB,6GAAA,cAAc,OAAA;AACd,iHAAA,kBAAkB,OAAA;AAClB,gHAAA,iBAAiB,OAAA;AAEnB,qDAA0F;AAAjF,kHAAA,eAAe,OAAA;AACxB,6DAA2F;AAAlF,0HAAA,mBAAmB,OAAA"}
|
|
@@ -1,9 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DeliveryProofBuilder - AIP-4 Delivery Proof Construction
|
|
3
|
+
* Reference: AIP-4 §9.1
|
|
4
|
+
*
|
|
5
|
+
* Builds complete delivery proofs with:
|
|
6
|
+
* - IPFS upload of result data
|
|
7
|
+
* - EAS attestation creation
|
|
8
|
+
* - EIP-712 signature
|
|
9
|
+
* - Canonical JSON hashing
|
|
10
|
+
*/
|
|
1
11
|
import { Signer } from 'ethers';
|
|
2
12
|
import { EAS } from '@ethereum-attestation-service/eas-sdk';
|
|
3
13
|
import { IPFSClient } from '../utils/IPFSClient';
|
|
4
14
|
import { NonceManager } from '../utils/NonceManager';
|
|
5
15
|
import { DeliveryProofMessage } from '../types/message';
|
|
6
|
-
|
|
16
|
+
/**
|
|
17
|
+
* AGIRAILS Delivery Schema UID (Base Sepolia)
|
|
18
|
+
* Deployed 2025-11-23 - AIP-4 delivery proof schema
|
|
19
|
+
* Schema: bytes32 txId, string resultCID, bytes32 resultHash, uint256 deliveredAt
|
|
20
|
+
*/
|
|
21
|
+
export declare const AGIRAILS_DELIVERY_SCHEMA_UID = "0x1b0ebdf0bd20c28ec9d5362571ce8715a55f46e81c3de2f9b0d8e1b95fb5ffce";
|
|
22
|
+
/**
|
|
23
|
+
* Delivery proof build parameters
|
|
24
|
+
*/
|
|
7
25
|
export interface DeliveryProofParams {
|
|
8
26
|
txId: string;
|
|
9
27
|
provider: string;
|
|
@@ -18,20 +36,61 @@ export interface DeliveryProofParams {
|
|
|
18
36
|
chainId: number;
|
|
19
37
|
kernelAddress: string;
|
|
20
38
|
}
|
|
39
|
+
/**
|
|
40
|
+
* DeliveryProofBuilder - Main Builder Class
|
|
41
|
+
*/
|
|
21
42
|
export declare class DeliveryProofBuilder {
|
|
22
43
|
private ipfs;
|
|
23
44
|
private signer;
|
|
24
45
|
private nonceManager;
|
|
25
46
|
private eas;
|
|
26
47
|
constructor(ipfs: IPFSClient, signer: Signer, nonceManager: NonceManager, eas: EAS);
|
|
48
|
+
/**
|
|
49
|
+
* Build complete delivery proof
|
|
50
|
+
* Reference: AIP-4 §5.1 (Provider workflow steps 1-9)
|
|
51
|
+
*
|
|
52
|
+
* @param params - Delivery proof parameters
|
|
53
|
+
* @returns Delivery proof message, IPFS CID, and attestation UID
|
|
54
|
+
*/
|
|
27
55
|
build(params: DeliveryProofParams): Promise<{
|
|
28
56
|
deliveryProof: DeliveryProofMessage;
|
|
29
57
|
deliveryProofCID: string;
|
|
30
58
|
attestationUID: string;
|
|
31
59
|
}>;
|
|
60
|
+
/**
|
|
61
|
+
* Verify delivery proof signature and integrity
|
|
62
|
+
* Reference: AIP-4 §5.2 (Consumer verification)
|
|
63
|
+
*
|
|
64
|
+
* @param deliveryProof - Delivery proof message
|
|
65
|
+
* @param resultData - Actual result data (from IPFS)
|
|
66
|
+
* @param kernelAddress - ACTPKernel contract address
|
|
67
|
+
* @returns true if valid, throws error otherwise
|
|
68
|
+
*/
|
|
32
69
|
verify(deliveryProof: DeliveryProofMessage, resultData: any, kernelAddress: string): Promise<boolean>;
|
|
70
|
+
/**
|
|
71
|
+
* Sign delivery proof with EIP-712
|
|
72
|
+
* Reference: AIP-4 §3.3
|
|
73
|
+
*
|
|
74
|
+
* @param deliveryProof - Delivery proof message (unsigned)
|
|
75
|
+
* @param kernelAddress - ACTPKernel contract address
|
|
76
|
+
* @returns EIP-712 signature (0x-prefixed, 130 chars)
|
|
77
|
+
*/
|
|
33
78
|
private signDeliveryProof;
|
|
79
|
+
/**
|
|
80
|
+
* Recover signer address from delivery proof signature
|
|
81
|
+
*
|
|
82
|
+
* @param deliveryProof - Delivery proof message
|
|
83
|
+
* @param kernelAddress - ACTPKernel contract address
|
|
84
|
+
* @returns Recovered Ethereum address
|
|
85
|
+
*/
|
|
34
86
|
private recoverDeliveryProofSigner;
|
|
87
|
+
/**
|
|
88
|
+
* Extract Ethereum address from DID
|
|
89
|
+
* Supports: did:ethr:0x... and did:ethr:84532:0x...
|
|
90
|
+
*
|
|
91
|
+
* @param did - DID string
|
|
92
|
+
* @returns Ethereum address (0x-prefixed, checksummed)
|
|
93
|
+
*/
|
|
35
94
|
private extractAddressFromDID;
|
|
36
95
|
}
|
|
37
96
|
//# sourceMappingURL=DeliveryProofBuilder.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DeliveryProofBuilder.d.ts","sourceRoot":"","sources":["../../src/builders/DeliveryProofBuilder.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"DeliveryProofBuilder.d.ts","sourceRoot":"","sources":["../../src/builders/DeliveryProofBuilder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,MAAM,EAAmB,MAAM,QAAQ,CAAC;AACjD,OAAO,EAAE,GAAG,EAAiB,MAAM,uCAAuC,CAAC;AAE3E,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAGxD;;;;GAIG;AACH,eAAO,MAAM,4BAA4B,uEAAuE,CAAC;AAEjH;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,GAAG,CAAC;IAChB,QAAQ,CAAC,EAAE;QACT,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;CACvB;AAID;;GAEG;AACH,qBAAa,oBAAoB;IAE7B,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,GAAG;gBAHH,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,YAAY,EAC1B,GAAG,EAAE,GAAG;IAGlB;;;;;;OAMG;IACG,KAAK,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC;QAChD,aAAa,EAAE,oBAAoB,CAAC;QACpC,gBAAgB,EAAE,MAAM,CAAC;QACzB,cAAc,EAAE,MAAM,CAAC;KACxB,CAAC;IA0EF;;;;;;;;OAQG;IACG,MAAM,CACV,aAAa,EAAE,oBAAoB,EACnC,UAAU,EAAE,GAAG,EACf,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,OAAO,CAAC;IA6DnB;;;;;;;OAOG;YACW,iBAAiB;IAsC/B;;;;;;OAMG;YACW,0BAA0B;IAwCxC;;;;;;OAMG;IACH,OAAO,CAAC,qBAAqB;CAU9B"}
|
|
@@ -1,11 +1,30 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* DeliveryProofBuilder - AIP-4 Delivery Proof Construction
|
|
4
|
+
* Reference: AIP-4 §9.1
|
|
5
|
+
*
|
|
6
|
+
* Builds complete delivery proofs with:
|
|
7
|
+
* - IPFS upload of result data
|
|
8
|
+
* - EAS attestation creation
|
|
9
|
+
* - EIP-712 signature
|
|
10
|
+
* - Canonical JSON hashing
|
|
11
|
+
*/
|
|
2
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
13
|
exports.DeliveryProofBuilder = exports.AGIRAILS_DELIVERY_SCHEMA_UID = void 0;
|
|
4
14
|
const ethers_1 = require("ethers");
|
|
5
15
|
const eas_sdk_1 = require("@ethereum-attestation-service/eas-sdk");
|
|
6
16
|
const canonicalJson_1 = require("../utils/canonicalJson");
|
|
7
17
|
const eip712_1 = require("../types/eip712");
|
|
8
|
-
|
|
18
|
+
/**
|
|
19
|
+
* AGIRAILS Delivery Schema UID (Base Sepolia)
|
|
20
|
+
* Deployed 2025-11-23 - AIP-4 delivery proof schema
|
|
21
|
+
* Schema: bytes32 txId, string resultCID, bytes32 resultHash, uint256 deliveredAt
|
|
22
|
+
*/
|
|
23
|
+
exports.AGIRAILS_DELIVERY_SCHEMA_UID = '0x1b0ebdf0bd20c28ec9d5362571ce8715a55f46e81c3de2f9b0d8e1b95fb5ffce';
|
|
24
|
+
// IPFSClient and NonceManager interfaces imported from utils
|
|
25
|
+
/**
|
|
26
|
+
* DeliveryProofBuilder - Main Builder Class
|
|
27
|
+
*/
|
|
9
28
|
class DeliveryProofBuilder {
|
|
10
29
|
constructor(ipfs, signer, nonceManager, eas) {
|
|
11
30
|
this.ipfs = ipfs;
|
|
@@ -13,12 +32,23 @@ class DeliveryProofBuilder {
|
|
|
13
32
|
this.nonceManager = nonceManager;
|
|
14
33
|
this.eas = eas;
|
|
15
34
|
}
|
|
35
|
+
/**
|
|
36
|
+
* Build complete delivery proof
|
|
37
|
+
* Reference: AIP-4 §5.1 (Provider workflow steps 1-9)
|
|
38
|
+
*
|
|
39
|
+
* @param params - Delivery proof parameters
|
|
40
|
+
* @returns Delivery proof message, IPFS CID, and attestation UID
|
|
41
|
+
*/
|
|
16
42
|
async build(params) {
|
|
43
|
+
// Step 1: Upload result to IPFS
|
|
17
44
|
const resultCID = await this.ipfs.add(JSON.stringify(params.resultData));
|
|
18
|
-
await this.ipfs.pin(resultCID);
|
|
45
|
+
await this.ipfs.pin(resultCID); // Permanent pinning
|
|
46
|
+
// Step 2: Compute result hash (canonical JSON)
|
|
19
47
|
const resultHash = (0, canonicalJson_1.computeResultHash)(params.resultData);
|
|
48
|
+
// Step 3: Create EAS attestation on-chain
|
|
20
49
|
const deliveredAt = Math.floor(Date.now() / 1000);
|
|
21
50
|
const schemaEncoder = new eas_sdk_1.SchemaEncoder('bytes32 txId,string resultCID,bytes32 resultHash,uint256 deliveredAt');
|
|
51
|
+
// Extract Ethereum address from consumer DID
|
|
22
52
|
const consumerAddress = this.extractAddressFromDID(params.consumer);
|
|
23
53
|
const encodedData = schemaEncoder.encodeData([
|
|
24
54
|
{ name: 'txId', value: params.txId, type: 'bytes32' },
|
|
@@ -30,13 +60,15 @@ class DeliveryProofBuilder {
|
|
|
30
60
|
schema: exports.AGIRAILS_DELIVERY_SCHEMA_UID,
|
|
31
61
|
data: {
|
|
32
62
|
recipient: consumerAddress,
|
|
33
|
-
expirationTime: 0n,
|
|
63
|
+
expirationTime: 0n, // No expiration (use bigint)
|
|
34
64
|
revocable: false,
|
|
35
65
|
data: encodedData
|
|
36
66
|
}
|
|
37
67
|
});
|
|
38
68
|
const receipt = await tx.wait();
|
|
69
|
+
// EAS SDK returns attestation UID directly in newAttestationUID
|
|
39
70
|
const attestationUID = receipt.newAttestationUID || receipt;
|
|
71
|
+
// Step 4: Build delivery proof message (unsigned)
|
|
40
72
|
const deliveryProof = {
|
|
41
73
|
type: 'agirails.delivery.v1',
|
|
42
74
|
version: '1.0.0',
|
|
@@ -50,12 +82,15 @@ class DeliveryProofBuilder {
|
|
|
50
82
|
deliveredAt,
|
|
51
83
|
chainId: params.chainId,
|
|
52
84
|
nonce: this.nonceManager.getNextNonce('agirails.delivery.v1'),
|
|
53
|
-
signature: ''
|
|
85
|
+
signature: '' // Filled in next step
|
|
54
86
|
};
|
|
87
|
+
// Step 5: Sign with EIP-712
|
|
55
88
|
const signature = await this.signDeliveryProof(deliveryProof, params.kernelAddress);
|
|
56
89
|
deliveryProof.signature = signature;
|
|
90
|
+
// Step 6: Upload delivery proof to IPFS
|
|
57
91
|
const deliveryProofCID = await this.ipfs.add(JSON.stringify(deliveryProof));
|
|
58
|
-
await this.ipfs.pin(deliveryProofCID);
|
|
92
|
+
await this.ipfs.pin(deliveryProofCID); // Permanent
|
|
93
|
+
// Record nonce usage
|
|
59
94
|
this.nonceManager.recordNonce('agirails.delivery.v1', deliveryProof.nonce);
|
|
60
95
|
return {
|
|
61
96
|
deliveryProof,
|
|
@@ -63,16 +98,28 @@ class DeliveryProofBuilder {
|
|
|
63
98
|
attestationUID
|
|
64
99
|
};
|
|
65
100
|
}
|
|
101
|
+
/**
|
|
102
|
+
* Verify delivery proof signature and integrity
|
|
103
|
+
* Reference: AIP-4 §5.2 (Consumer verification)
|
|
104
|
+
*
|
|
105
|
+
* @param deliveryProof - Delivery proof message
|
|
106
|
+
* @param resultData - Actual result data (from IPFS)
|
|
107
|
+
* @param kernelAddress - ACTPKernel contract address
|
|
108
|
+
* @returns true if valid, throws error otherwise
|
|
109
|
+
*/
|
|
66
110
|
async verify(deliveryProof, resultData, kernelAddress) {
|
|
111
|
+
// 1. Verify signature
|
|
67
112
|
const recoveredAddress = await this.recoverDeliveryProofSigner(deliveryProof, kernelAddress);
|
|
68
113
|
const expectedAddress = this.extractAddressFromDID(deliveryProof.provider);
|
|
69
114
|
if (recoveredAddress.toLowerCase() !== expectedAddress.toLowerCase()) {
|
|
70
115
|
throw new Error('Invalid signature: recovered address does not match provider');
|
|
71
116
|
}
|
|
117
|
+
// 2. Verify result hash
|
|
72
118
|
const computedHash = (0, canonicalJson_1.computeResultHash)(resultData);
|
|
73
119
|
if (computedHash !== deliveryProof.resultHash) {
|
|
74
120
|
throw new Error('Result hash mismatch - data may be tampered');
|
|
75
121
|
}
|
|
122
|
+
// 3. Verify EAS attestation exists and is valid
|
|
76
123
|
const attestation = await this.eas.getAttestation(deliveryProof.easAttestationUID);
|
|
77
124
|
if (!attestation) {
|
|
78
125
|
throw new Error('Attestation not found on EAS');
|
|
@@ -80,12 +127,14 @@ class DeliveryProofBuilder {
|
|
|
80
127
|
if (attestation.schema !== exports.AGIRAILS_DELIVERY_SCHEMA_UID) {
|
|
81
128
|
throw new Error(`Invalid attestation schema: expected ${exports.AGIRAILS_DELIVERY_SCHEMA_UID}, got ${attestation.schema}`);
|
|
82
129
|
}
|
|
130
|
+
// Check if attestation is revoked (property may not exist in all EAS SDK versions)
|
|
83
131
|
if ('revoked' in attestation && attestation.revoked) {
|
|
84
132
|
throw new Error('Attestation was revoked');
|
|
85
133
|
}
|
|
86
134
|
if ('revocationTime' in attestation && attestation.revocationTime > 0) {
|
|
87
135
|
throw new Error('Attestation was revoked');
|
|
88
136
|
}
|
|
137
|
+
// 4. Verify attestation data matches delivery proof
|
|
89
138
|
const schemaEncoder = new eas_sdk_1.SchemaEncoder('bytes32 txId,string resultCID,bytes32 resultHash,uint256 deliveredAt');
|
|
90
139
|
const decodedData = schemaEncoder.decodeData(attestation.data);
|
|
91
140
|
const attestationTxId = decodedData.find((d) => d.name === 'txId')?.value.value;
|
|
@@ -102,6 +151,14 @@ class DeliveryProofBuilder {
|
|
|
102
151
|
}
|
|
103
152
|
return true;
|
|
104
153
|
}
|
|
154
|
+
/**
|
|
155
|
+
* Sign delivery proof with EIP-712
|
|
156
|
+
* Reference: AIP-4 §3.3
|
|
157
|
+
*
|
|
158
|
+
* @param deliveryProof - Delivery proof message (unsigned)
|
|
159
|
+
* @param kernelAddress - ACTPKernel contract address
|
|
160
|
+
* @returns EIP-712 signature (0x-prefixed, 130 chars)
|
|
161
|
+
*/
|
|
105
162
|
async signDeliveryProof(deliveryProof, kernelAddress) {
|
|
106
163
|
const domain = {
|
|
107
164
|
name: 'AGIRAILS',
|
|
@@ -120,12 +177,21 @@ class DeliveryProofBuilder {
|
|
|
120
177
|
chainId: deliveryProof.chainId,
|
|
121
178
|
nonce: deliveryProof.nonce
|
|
122
179
|
};
|
|
180
|
+
// Sign using ethers v6 signTypedData API
|
|
181
|
+
// ethers v6 uses signTypedData() (without underscore)
|
|
123
182
|
if ('signTypedData' in this.signer && typeof this.signer.signTypedData === 'function') {
|
|
124
183
|
const signature = await this.signer.signTypedData(domain, eip712_1.AIP4DeliveryProofTypes, message);
|
|
125
184
|
return signature;
|
|
126
185
|
}
|
|
127
186
|
throw new Error('Signer does not support EIP-712 typed data signing (ethers v6+)');
|
|
128
187
|
}
|
|
188
|
+
/**
|
|
189
|
+
* Recover signer address from delivery proof signature
|
|
190
|
+
*
|
|
191
|
+
* @param deliveryProof - Delivery proof message
|
|
192
|
+
* @param kernelAddress - ACTPKernel contract address
|
|
193
|
+
* @returns Recovered Ethereum address
|
|
194
|
+
*/
|
|
129
195
|
async recoverDeliveryProofSigner(deliveryProof, kernelAddress) {
|
|
130
196
|
const domain = {
|
|
131
197
|
name: 'AGIRAILS',
|
|
@@ -144,14 +210,24 @@ class DeliveryProofBuilder {
|
|
|
144
210
|
chainId: deliveryProof.chainId,
|
|
145
211
|
nonce: deliveryProof.nonce
|
|
146
212
|
};
|
|
213
|
+
// Recover address using ethers.js verifyTypedData
|
|
214
|
+
// Wrap in try-catch to handle low-level cryptographic errors gracefully
|
|
147
215
|
try {
|
|
148
216
|
const recoveredAddress = (0, ethers_1.verifyTypedData)(domain, eip712_1.AIP4DeliveryProofTypes, message, deliveryProof.signature);
|
|
149
217
|
return recoveredAddress;
|
|
150
218
|
}
|
|
151
219
|
catch (error) {
|
|
220
|
+
// Wrap low-level cryptographic errors in meaningful error message
|
|
152
221
|
throw new Error(`Invalid signature: ${error.message || 'signature verification failed'}`);
|
|
153
222
|
}
|
|
154
223
|
}
|
|
224
|
+
/**
|
|
225
|
+
* Extract Ethereum address from DID
|
|
226
|
+
* Supports: did:ethr:0x... and did:ethr:84532:0x...
|
|
227
|
+
*
|
|
228
|
+
* @param did - DID string
|
|
229
|
+
* @returns Ethereum address (0x-prefixed, checksummed)
|
|
230
|
+
*/
|
|
155
231
|
extractAddressFromDID(did) {
|
|
156
232
|
const parts = did.replace('did:ethr:', '').split(':');
|
|
157
233
|
const address = parts.length === 2 ? parts[1] : parts[0];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DeliveryProofBuilder.js","sourceRoot":"","sources":["../../src/builders/DeliveryProofBuilder.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"DeliveryProofBuilder.js","sourceRoot":"","sources":["../../src/builders/DeliveryProofBuilder.ts"],"names":[],"mappings":"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"}
|