@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,481 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.DIDManager = void 0;
|
|
7
|
+
const ethers_1 = require("ethers");
|
|
8
|
+
const IdentityRegistry_json_1 = __importDefault(require("../abi/IdentityRegistry.json"));
|
|
9
|
+
const errors_1 = require("../errors");
|
|
10
|
+
const validation_1 = require("../utils/validation");
|
|
11
|
+
/**
|
|
12
|
+
* DIDManager - Manage DID attributes and delegates (AIP-7 §2.2)
|
|
13
|
+
*
|
|
14
|
+
* Interacts with ERC-1056 compatible AGIRAILS Identity Registry.
|
|
15
|
+
* Provides key rotation, delegate management, and attribute storage.
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* ```typescript
|
|
19
|
+
* const manager = new DIDManager(registryAddress, signer);
|
|
20
|
+
*
|
|
21
|
+
* // Get identity owner
|
|
22
|
+
* const owner = await manager.getOwner(myAddress);
|
|
23
|
+
*
|
|
24
|
+
* // Add delegate (expires in 1 year)
|
|
25
|
+
* await manager.addDelegate(
|
|
26
|
+
* DelegateType.SIGNING,
|
|
27
|
+
* delegateAddress,
|
|
28
|
+
* 365 * 24 * 60 * 60
|
|
29
|
+
* );
|
|
30
|
+
*
|
|
31
|
+
* // Set service endpoint
|
|
32
|
+
* await manager.setAttribute(
|
|
33
|
+
* AttributeName.SERVICE_ENDPOINT,
|
|
34
|
+
* 'https://api.example.com',
|
|
35
|
+
* 365 * 24 * 60 * 60
|
|
36
|
+
* );
|
|
37
|
+
* ```
|
|
38
|
+
*
|
|
39
|
+
* @security
|
|
40
|
+
* - Only identity owner can add/revoke delegates
|
|
41
|
+
* - Only identity owner can set/revoke attributes
|
|
42
|
+
* - All operations wait for 2 confirmations
|
|
43
|
+
* - Gas limits include 20% safety buffer
|
|
44
|
+
*/
|
|
45
|
+
class DIDManager {
|
|
46
|
+
/**
|
|
47
|
+
* Create DIDManager instance
|
|
48
|
+
*
|
|
49
|
+
* @param registryAddress - Address of AGIRAILS Identity Registry (ERC-1056)
|
|
50
|
+
* @param signer - Ethers.js signer (must be identity owner for write operations)
|
|
51
|
+
* @param gasSettings - Optional gas price settings
|
|
52
|
+
*/
|
|
53
|
+
constructor(registryAddress, signer, gasSettings) {
|
|
54
|
+
this.registryAddress = registryAddress;
|
|
55
|
+
(0, validation_1.validateAddress)(registryAddress, 'registryAddress');
|
|
56
|
+
this.contract = new ethers_1.Contract(registryAddress, IdentityRegistry_json_1.default, signer);
|
|
57
|
+
this.gasSettings = gasSettings;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Get gas buffer multiplier based on operation complexity
|
|
61
|
+
*/
|
|
62
|
+
getGasBufferMultiplier(operation) {
|
|
63
|
+
const buffers = {
|
|
64
|
+
'changeOwner': 1.30, // 30% - Ownership transfer
|
|
65
|
+
'addDelegate': 1.25, // 25% - Delegate registration
|
|
66
|
+
'revokeDelegate': 1.20, // 20% - Delegate removal
|
|
67
|
+
'setAttribute': 1.30, // 30% - Attribute storage (variable size)
|
|
68
|
+
'revokeAttribute': 1.20 // 20% - Attribute removal
|
|
69
|
+
};
|
|
70
|
+
return buffers[operation] || 1.20;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Build transaction options with gas settings
|
|
74
|
+
*/
|
|
75
|
+
buildTxOptions(estimatedGas, operation = 'default') {
|
|
76
|
+
const bufferMultiplier = this.getGasBufferMultiplier(operation);
|
|
77
|
+
let gasLimit = (estimatedGas * BigInt(Math.round(bufferMultiplier * 100))) / 100n;
|
|
78
|
+
// Cap gas limit (Base L2 safety)
|
|
79
|
+
const MAX_GAS_LIMIT = 10000000n;
|
|
80
|
+
if (gasLimit > MAX_GAS_LIMIT) {
|
|
81
|
+
throw new errors_1.ValidationError('gasLimit', `Estimated gas exceeds maximum safe limit (${MAX_GAS_LIMIT})`);
|
|
82
|
+
}
|
|
83
|
+
const options = { gasLimit };
|
|
84
|
+
if (this.gasSettings?.maxFeePerGas) {
|
|
85
|
+
options.maxFeePerGas = this.gasSettings.maxFeePerGas;
|
|
86
|
+
}
|
|
87
|
+
if (this.gasSettings?.maxPriorityFeePerGas) {
|
|
88
|
+
options.maxPriorityFeePerGas = this.gasSettings.maxPriorityFeePerGas;
|
|
89
|
+
}
|
|
90
|
+
return options;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Get registry contract address
|
|
94
|
+
*/
|
|
95
|
+
getAddress() {
|
|
96
|
+
return this.registryAddress;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Get identity owner
|
|
100
|
+
*
|
|
101
|
+
* @param identity - Address to check (if not provided, uses signer address)
|
|
102
|
+
* @returns Current owner address
|
|
103
|
+
*
|
|
104
|
+
* @example
|
|
105
|
+
* ```typescript
|
|
106
|
+
* const owner = await manager.getOwner('0x742d35cc6634c0532925a3b844bc9e7595f0beb');
|
|
107
|
+
* console.log('Identity owner:', owner);
|
|
108
|
+
* ```
|
|
109
|
+
*/
|
|
110
|
+
async getOwner(identity) {
|
|
111
|
+
let addr = identity;
|
|
112
|
+
// If no identity provided, try to get from signer
|
|
113
|
+
if (!addr && this.contract.runner && 'getAddress' in this.contract.runner) {
|
|
114
|
+
addr = await this.contract.runner.getAddress();
|
|
115
|
+
}
|
|
116
|
+
if (!addr) {
|
|
117
|
+
throw new errors_1.ValidationError('identity', 'Must provide identity address or signer');
|
|
118
|
+
}
|
|
119
|
+
(0, validation_1.validateAddress)(addr, 'identity');
|
|
120
|
+
const owner = await this.contract.identityOwner(addr);
|
|
121
|
+
return owner;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Change identity owner (key rotation)
|
|
125
|
+
*
|
|
126
|
+
* @param identity - Identity address to update
|
|
127
|
+
* @param newOwner - New owner address
|
|
128
|
+
* @returns Transaction hash
|
|
129
|
+
* @throws TransactionRevertedError if transaction fails
|
|
130
|
+
*
|
|
131
|
+
* @security
|
|
132
|
+
* - Only current owner can change ownership
|
|
133
|
+
* - Waits for 2 confirmations
|
|
134
|
+
* - Validates new owner address
|
|
135
|
+
*
|
|
136
|
+
* @example
|
|
137
|
+
* ```typescript
|
|
138
|
+
* // Rotate key to new address
|
|
139
|
+
* const txHash = await manager.changeOwner(
|
|
140
|
+
* '0x742d35cc6634c0532925a3b844bc9e7595f0beb',
|
|
141
|
+
* '0xNewOwnerAddress...'
|
|
142
|
+
* );
|
|
143
|
+
* console.log('Ownership transferred:', txHash);
|
|
144
|
+
* ```
|
|
145
|
+
*/
|
|
146
|
+
async changeOwner(identity, newOwner) {
|
|
147
|
+
(0, validation_1.validateAddress)(identity, 'identity');
|
|
148
|
+
(0, validation_1.validateAddress)(newOwner, 'newOwner');
|
|
149
|
+
try {
|
|
150
|
+
// Estimate gas
|
|
151
|
+
const estimatedGas = await this.contract.changeOwner.estimateGas(identity, newOwner);
|
|
152
|
+
const options = this.buildTxOptions(estimatedGas, 'changeOwner');
|
|
153
|
+
// Send transaction
|
|
154
|
+
const tx = await this.contract.changeOwner(identity, newOwner, options);
|
|
155
|
+
// Wait for 2 confirmations
|
|
156
|
+
await tx.wait(2);
|
|
157
|
+
return tx.hash;
|
|
158
|
+
}
|
|
159
|
+
catch (error) {
|
|
160
|
+
throw new errors_1.TransactionRevertedError('changeOwner', error instanceof Error ? error.message : 'Transaction failed');
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Check if delegate is valid
|
|
165
|
+
*
|
|
166
|
+
* @param identity - Identity address
|
|
167
|
+
* @param delegateType - Type of delegate (e.g., DelegateType.SIGNING)
|
|
168
|
+
* @param delegate - Delegate address
|
|
169
|
+
* @returns True if delegate is currently valid
|
|
170
|
+
*
|
|
171
|
+
* @example
|
|
172
|
+
* ```typescript
|
|
173
|
+
* const isValid = await manager.validDelegate(
|
|
174
|
+
* '0x742d35cc...',
|
|
175
|
+
* DelegateType.SIGNING,
|
|
176
|
+
* '0xDelegateAddress...'
|
|
177
|
+
* );
|
|
178
|
+
* console.log('Delegate valid:', isValid);
|
|
179
|
+
* ```
|
|
180
|
+
*/
|
|
181
|
+
async validDelegate(identity, delegateType, delegate) {
|
|
182
|
+
(0, validation_1.validateAddress)(identity, 'identity');
|
|
183
|
+
(0, validation_1.validateAddress)(delegate, 'delegate');
|
|
184
|
+
const typeHash = this.stringToBytes32(delegateType);
|
|
185
|
+
const isValid = await this.contract.validDelegate(identity, typeHash, delegate);
|
|
186
|
+
return isValid;
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Add delegate (for signing on behalf of identity)
|
|
190
|
+
*
|
|
191
|
+
* @param identity - Identity address
|
|
192
|
+
* @param delegateType - Type of delegate (e.g., DelegateType.SIGNING)
|
|
193
|
+
* @param delegate - Delegate address
|
|
194
|
+
* @param validity - Validity period in seconds
|
|
195
|
+
* @returns Transaction hash
|
|
196
|
+
* @throws TransactionRevertedError if transaction fails
|
|
197
|
+
*
|
|
198
|
+
* @security
|
|
199
|
+
* - Only identity owner can add delegates
|
|
200
|
+
* - Delegate expires after validity period
|
|
201
|
+
* - Waits for 2 confirmations
|
|
202
|
+
*
|
|
203
|
+
* @example
|
|
204
|
+
* ```typescript
|
|
205
|
+
* // Add signing delegate for 1 year
|
|
206
|
+
* const txHash = await manager.addDelegate(
|
|
207
|
+
* '0x742d35cc...',
|
|
208
|
+
* DelegateType.SIGNING,
|
|
209
|
+
* '0xDelegateAddress...',
|
|
210
|
+
* 365 * 24 * 60 * 60 // 1 year in seconds
|
|
211
|
+
* );
|
|
212
|
+
* ```
|
|
213
|
+
*/
|
|
214
|
+
async addDelegate(identity, delegateType, delegate, validity) {
|
|
215
|
+
(0, validation_1.validateAddress)(identity, 'identity');
|
|
216
|
+
(0, validation_1.validateAddress)(delegate, 'delegate');
|
|
217
|
+
if (validity <= 0) {
|
|
218
|
+
throw new errors_1.ValidationError('validity', 'Validity must be positive');
|
|
219
|
+
}
|
|
220
|
+
const typeHash = this.stringToBytes32(delegateType);
|
|
221
|
+
try {
|
|
222
|
+
// Estimate gas
|
|
223
|
+
const estimatedGas = await this.contract.addDelegate.estimateGas(identity, typeHash, delegate, validity);
|
|
224
|
+
const options = this.buildTxOptions(estimatedGas, 'addDelegate');
|
|
225
|
+
// Send transaction
|
|
226
|
+
const tx = await this.contract.addDelegate(identity, typeHash, delegate, validity, options);
|
|
227
|
+
// Wait for 2 confirmations
|
|
228
|
+
await tx.wait(2);
|
|
229
|
+
return tx.hash;
|
|
230
|
+
}
|
|
231
|
+
catch (error) {
|
|
232
|
+
throw new errors_1.TransactionRevertedError('addDelegate', error instanceof Error ? error.message : 'Transaction failed');
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
/**
|
|
236
|
+
* Revoke delegate
|
|
237
|
+
*
|
|
238
|
+
* @param identity - Identity address
|
|
239
|
+
* @param delegateType - Type of delegate
|
|
240
|
+
* @param delegate - Delegate address to revoke
|
|
241
|
+
* @returns Transaction hash
|
|
242
|
+
* @throws TransactionRevertedError if transaction fails
|
|
243
|
+
*
|
|
244
|
+
* @security
|
|
245
|
+
* - Only identity owner can revoke delegates
|
|
246
|
+
* - Waits for 2 confirmations
|
|
247
|
+
*
|
|
248
|
+
* @example
|
|
249
|
+
* ```typescript
|
|
250
|
+
* const txHash = await manager.revokeDelegate(
|
|
251
|
+
* '0x742d35cc...',
|
|
252
|
+
* DelegateType.SIGNING,
|
|
253
|
+
* '0xDelegateAddress...'
|
|
254
|
+
* );
|
|
255
|
+
* ```
|
|
256
|
+
*/
|
|
257
|
+
async revokeDelegate(identity, delegateType, delegate) {
|
|
258
|
+
(0, validation_1.validateAddress)(identity, 'identity');
|
|
259
|
+
(0, validation_1.validateAddress)(delegate, 'delegate');
|
|
260
|
+
const typeHash = this.stringToBytes32(delegateType);
|
|
261
|
+
try {
|
|
262
|
+
// Estimate gas
|
|
263
|
+
const estimatedGas = await this.contract.revokeDelegate.estimateGas(identity, typeHash, delegate);
|
|
264
|
+
const options = this.buildTxOptions(estimatedGas, 'revokeDelegate');
|
|
265
|
+
// Send transaction
|
|
266
|
+
const tx = await this.contract.revokeDelegate(identity, typeHash, delegate, options);
|
|
267
|
+
// Wait for 2 confirmations
|
|
268
|
+
await tx.wait(2);
|
|
269
|
+
return tx.hash;
|
|
270
|
+
}
|
|
271
|
+
catch (error) {
|
|
272
|
+
throw new errors_1.TransactionRevertedError('revokeDelegate', error instanceof Error ? error.message : 'Transaction failed');
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
/**
|
|
276
|
+
* Set attribute (e.g., service endpoint)
|
|
277
|
+
*
|
|
278
|
+
* @param identity - Identity address
|
|
279
|
+
* @param name - Attribute name (e.g., AttributeName.SERVICE_ENDPOINT)
|
|
280
|
+
* @param value - Attribute value (string, will be encoded to bytes)
|
|
281
|
+
* @param validity - Validity period in seconds
|
|
282
|
+
* @returns Transaction hash
|
|
283
|
+
* @throws TransactionRevertedError if transaction fails
|
|
284
|
+
*
|
|
285
|
+
* @security
|
|
286
|
+
* - Only identity owner can set attributes
|
|
287
|
+
* - Attribute expires after validity period
|
|
288
|
+
* - Waits for 2 confirmations
|
|
289
|
+
*
|
|
290
|
+
* @example
|
|
291
|
+
* ```typescript
|
|
292
|
+
* // Set service endpoint for 1 year
|
|
293
|
+
* const txHash = await manager.setAttribute(
|
|
294
|
+
* '0x742d35cc...',
|
|
295
|
+
* AttributeName.SERVICE_ENDPOINT,
|
|
296
|
+
* 'https://api.example.com/v1',
|
|
297
|
+
* 365 * 24 * 60 * 60
|
|
298
|
+
* );
|
|
299
|
+
* ```
|
|
300
|
+
*/
|
|
301
|
+
async setAttribute(identity, name, value, validity) {
|
|
302
|
+
(0, validation_1.validateAddress)(identity, 'identity');
|
|
303
|
+
if (!value || value.length === 0) {
|
|
304
|
+
throw new errors_1.ValidationError('value', 'Attribute value cannot be empty');
|
|
305
|
+
}
|
|
306
|
+
if (validity <= 0) {
|
|
307
|
+
throw new errors_1.ValidationError('validity', 'Validity must be positive');
|
|
308
|
+
}
|
|
309
|
+
const nameHash = this.stringToBytes32(name);
|
|
310
|
+
const valueBytes = (0, ethers_1.toUtf8Bytes)(value);
|
|
311
|
+
try {
|
|
312
|
+
// Estimate gas
|
|
313
|
+
const estimatedGas = await this.contract.setAttribute.estimateGas(identity, nameHash, valueBytes, validity);
|
|
314
|
+
const options = this.buildTxOptions(estimatedGas, 'setAttribute');
|
|
315
|
+
// Send transaction
|
|
316
|
+
const tx = await this.contract.setAttribute(identity, nameHash, valueBytes, validity, options);
|
|
317
|
+
// Wait for 2 confirmations
|
|
318
|
+
await tx.wait(2);
|
|
319
|
+
return tx.hash;
|
|
320
|
+
}
|
|
321
|
+
catch (error) {
|
|
322
|
+
throw new errors_1.TransactionRevertedError('setAttribute', error instanceof Error ? error.message : 'Transaction failed');
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
/**
|
|
326
|
+
* Revoke attribute
|
|
327
|
+
*
|
|
328
|
+
* @param identity - Identity address
|
|
329
|
+
* @param name - Attribute name to revoke
|
|
330
|
+
* @param value - Attribute value (must match value set)
|
|
331
|
+
* @returns Transaction hash
|
|
332
|
+
* @throws TransactionRevertedError if transaction fails
|
|
333
|
+
*
|
|
334
|
+
* @security
|
|
335
|
+
* - Only identity owner can revoke attributes
|
|
336
|
+
* - Waits for 2 confirmations
|
|
337
|
+
*
|
|
338
|
+
* @example
|
|
339
|
+
* ```typescript
|
|
340
|
+
* const txHash = await manager.revokeAttribute(
|
|
341
|
+
* '0x742d35cc...',
|
|
342
|
+
* AttributeName.SERVICE_ENDPOINT,
|
|
343
|
+
* 'https://api.example.com/v1'
|
|
344
|
+
* );
|
|
345
|
+
* ```
|
|
346
|
+
*/
|
|
347
|
+
async revokeAttribute(identity, name, value) {
|
|
348
|
+
(0, validation_1.validateAddress)(identity, 'identity');
|
|
349
|
+
if (!value || value.length === 0) {
|
|
350
|
+
throw new errors_1.ValidationError('value', 'Attribute value cannot be empty');
|
|
351
|
+
}
|
|
352
|
+
const nameHash = this.stringToBytes32(name);
|
|
353
|
+
const valueBytes = (0, ethers_1.toUtf8Bytes)(value);
|
|
354
|
+
try {
|
|
355
|
+
// Estimate gas
|
|
356
|
+
const estimatedGas = await this.contract.revokeAttribute.estimateGas(identity, nameHash, valueBytes);
|
|
357
|
+
const options = this.buildTxOptions(estimatedGas, 'revokeAttribute');
|
|
358
|
+
// Send transaction
|
|
359
|
+
const tx = await this.contract.revokeAttribute(identity, nameHash, valueBytes, options);
|
|
360
|
+
// Wait for 2 confirmations
|
|
361
|
+
await tx.wait(2);
|
|
362
|
+
return tx.hash;
|
|
363
|
+
}
|
|
364
|
+
catch (error) {
|
|
365
|
+
throw new errors_1.TransactionRevertedError('revokeAttribute', error instanceof Error ? error.message : 'Transaction failed');
|
|
366
|
+
}
|
|
367
|
+
}
|
|
368
|
+
/**
|
|
369
|
+
* Get timestamp of last change for identity
|
|
370
|
+
*
|
|
371
|
+
* @param identity - Identity address
|
|
372
|
+
* @returns Timestamp of last change (seconds since Unix epoch)
|
|
373
|
+
*/
|
|
374
|
+
async getChanged(identity) {
|
|
375
|
+
(0, validation_1.validateAddress)(identity, 'identity');
|
|
376
|
+
const changed = await this.contract.changed(identity);
|
|
377
|
+
return changed;
|
|
378
|
+
}
|
|
379
|
+
/**
|
|
380
|
+
* Get nonce for identity (for signed operations)
|
|
381
|
+
*
|
|
382
|
+
* @param identity - Identity address
|
|
383
|
+
* @returns Current nonce
|
|
384
|
+
*/
|
|
385
|
+
async getNonce(identity) {
|
|
386
|
+
(0, validation_1.validateAddress)(identity, 'identity');
|
|
387
|
+
const nonce = await this.contract.nonce(identity);
|
|
388
|
+
return nonce;
|
|
389
|
+
}
|
|
390
|
+
/**
|
|
391
|
+
* Convert string to bytes32 hash
|
|
392
|
+
*
|
|
393
|
+
* Used for delegate types and attribute names in ERC-1056
|
|
394
|
+
*
|
|
395
|
+
* @param str - String to convert
|
|
396
|
+
* @returns bytes32 hash (0x-prefixed hex string)
|
|
397
|
+
*
|
|
398
|
+
* @example
|
|
399
|
+
* ```typescript
|
|
400
|
+
* const hash = manager.stringToBytes32('veriKey');
|
|
401
|
+
* // Returns: '0x...' (keccak256 hash)
|
|
402
|
+
* ```
|
|
403
|
+
*/
|
|
404
|
+
stringToBytes32(str) {
|
|
405
|
+
// If already a bytes32 hash (0x + 64 hex chars), return as-is
|
|
406
|
+
if (/^0x[0-9a-fA-F]{64}$/.test(str)) {
|
|
407
|
+
return str;
|
|
408
|
+
}
|
|
409
|
+
// Otherwise, hash the string
|
|
410
|
+
return (0, ethers_1.keccak256)((0, ethers_1.toUtf8Bytes)(str));
|
|
411
|
+
}
|
|
412
|
+
/**
|
|
413
|
+
* Listen for DIDOwnerChanged events
|
|
414
|
+
*
|
|
415
|
+
* @param callback - Function to call when owner changes
|
|
416
|
+
* @param identity - Optional filter by identity address
|
|
417
|
+
* @returns Cleanup function to stop listening
|
|
418
|
+
*
|
|
419
|
+
* @example
|
|
420
|
+
* ```typescript
|
|
421
|
+
* const unsubscribe = manager.onOwnerChanged((event) => {
|
|
422
|
+
* console.log('Owner changed:', event);
|
|
423
|
+
* }, '0x742d35cc...');
|
|
424
|
+
*
|
|
425
|
+
* // Later: stop listening
|
|
426
|
+
* unsubscribe();
|
|
427
|
+
* ```
|
|
428
|
+
*/
|
|
429
|
+
onOwnerChanged(callback, identity) {
|
|
430
|
+
const filter = identity
|
|
431
|
+
? this.contract.filters.DIDOwnerChanged(identity)
|
|
432
|
+
: this.contract.filters.DIDOwnerChanged();
|
|
433
|
+
const listener = (identityAddr, owner, previousChange) => {
|
|
434
|
+
callback({ identity: identityAddr, owner, previousChange });
|
|
435
|
+
};
|
|
436
|
+
this.contract.on(filter, listener);
|
|
437
|
+
return () => {
|
|
438
|
+
this.contract.off(filter, listener);
|
|
439
|
+
};
|
|
440
|
+
}
|
|
441
|
+
/**
|
|
442
|
+
* Listen for DIDDelegateChanged events
|
|
443
|
+
*
|
|
444
|
+
* @param callback - Function to call when delegate changes
|
|
445
|
+
* @param identity - Optional filter by identity address
|
|
446
|
+
* @returns Cleanup function to stop listening
|
|
447
|
+
*/
|
|
448
|
+
onDelegateChanged(callback, identity) {
|
|
449
|
+
const filter = identity
|
|
450
|
+
? this.contract.filters.DIDDelegateChanged(identity)
|
|
451
|
+
: this.contract.filters.DIDDelegateChanged();
|
|
452
|
+
const listener = (identityAddr, delegateType, delegate, validTo, previousChange) => {
|
|
453
|
+
callback({ identity: identityAddr, delegateType, delegate, validTo, previousChange });
|
|
454
|
+
};
|
|
455
|
+
this.contract.on(filter, listener);
|
|
456
|
+
return () => {
|
|
457
|
+
this.contract.off(filter, listener);
|
|
458
|
+
};
|
|
459
|
+
}
|
|
460
|
+
/**
|
|
461
|
+
* Listen for DIDAttributeChanged events
|
|
462
|
+
*
|
|
463
|
+
* @param callback - Function to call when attribute changes
|
|
464
|
+
* @param identity - Optional filter by identity address
|
|
465
|
+
* @returns Cleanup function to stop listening
|
|
466
|
+
*/
|
|
467
|
+
onAttributeChanged(callback, identity) {
|
|
468
|
+
const filter = identity
|
|
469
|
+
? this.contract.filters.DIDAttributeChanged(identity)
|
|
470
|
+
: this.contract.filters.DIDAttributeChanged();
|
|
471
|
+
const listener = (identityAddr, name, value, validTo, previousChange) => {
|
|
472
|
+
callback({ identity: identityAddr, name, value, validTo, previousChange });
|
|
473
|
+
};
|
|
474
|
+
this.contract.on(filter, listener);
|
|
475
|
+
return () => {
|
|
476
|
+
this.contract.off(filter, listener);
|
|
477
|
+
};
|
|
478
|
+
}
|
|
479
|
+
}
|
|
480
|
+
exports.DIDManager = DIDManager;
|
|
481
|
+
//# sourceMappingURL=DIDManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DIDManager.js","sourceRoot":"","sources":["../../src/protocol/DIDManager.ts"],"names":[],"mappings":"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"}
|