@agirails/sdk 2.0.0 → 2.0.1-beta
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/README.md +108 -116
- package/dist/ACTPClient.d.ts +33 -456
- package/dist/ACTPClient.d.ts.map +1 -1
- package/dist/ACTPClient.js +93 -477
- package/dist/ACTPClient.js.map +1 -1
- package/dist/abi/EscrowVault.json +38 -106
- package/dist/builders/DeliveryProofBuilder.d.ts +1 -60
- package/dist/builders/DeliveryProofBuilder.d.ts.map +1 -1
- package/dist/builders/DeliveryProofBuilder.js +5 -81
- package/dist/builders/DeliveryProofBuilder.js.map +1 -1
- package/dist/builders/QuoteBuilder.d.ts +0 -101
- package/dist/builders/QuoteBuilder.d.ts.map +1 -1
- package/dist/builders/QuoteBuilder.js +3 -120
- package/dist/builders/QuoteBuilder.js.map +1 -1
- package/dist/builders/index.d.ts +0 -4
- package/dist/builders/index.d.ts.map +1 -1
- package/dist/builders/index.js +0 -4
- package/dist/builders/index.js.map +1 -1
- package/dist/config/networks.d.ts +0 -28
- package/dist/config/networks.d.ts.map +1 -1
- package/dist/config/networks.js +12 -60
- package/dist/config/networks.js.map +1 -1
- package/dist/errors/index.d.ts +2 -165
- package/dist/errors/index.d.ts.map +1 -1
- package/dist/errors/index.js +2 -260
- package/dist/errors/index.js.map +1 -1
- package/dist/index.d.ts +13 -61
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +36 -141
- package/dist/index.js.map +1 -1
- package/dist/protocol/ACTPKernel.d.ts +2 -229
- package/dist/protocol/ACTPKernel.d.ts.map +1 -1
- package/dist/protocol/ACTPKernel.js +33 -367
- package/dist/protocol/ACTPKernel.js.map +1 -1
- package/dist/protocol/EASHelper.d.ts +2 -57
- package/dist/protocol/EASHelper.d.ts.map +1 -1
- package/dist/protocol/EASHelper.js +37 -230
- package/dist/protocol/EASHelper.js.map +1 -1
- package/dist/protocol/EscrowVault.d.ts +2 -93
- package/dist/protocol/EscrowVault.d.ts.map +1 -1
- package/dist/protocol/EscrowVault.js +33 -122
- package/dist/protocol/EscrowVault.js.map +1 -1
- package/dist/protocol/EventMonitor.d.ts +1 -45
- package/dist/protocol/EventMonitor.d.ts.map +1 -1
- package/dist/protocol/EventMonitor.js +8 -64
- package/dist/protocol/EventMonitor.js.map +1 -1
- package/dist/protocol/MessageSigner.d.ts +2 -116
- package/dist/protocol/MessageSigner.d.ts.map +1 -1
- package/dist/protocol/MessageSigner.js +9 -215
- package/dist/protocol/MessageSigner.js.map +1 -1
- package/dist/protocol/ProofGenerator.d.ts +0 -93
- package/dist/protocol/ProofGenerator.d.ts.map +1 -1
- package/dist/protocol/ProofGenerator.js +9 -194
- package/dist/protocol/ProofGenerator.js.map +1 -1
- package/dist/protocol/QuoteBuilder.d.ts +0 -8
- package/dist/protocol/QuoteBuilder.d.ts.map +1 -1
- package/dist/protocol/QuoteBuilder.js +0 -8
- package/dist/protocol/QuoteBuilder.js.map +1 -1
- package/dist/types/eip712.d.ts +0 -34
- package/dist/types/eip712.d.ts.map +1 -1
- package/dist/types/eip712.js +5 -31
- package/dist/types/eip712.js.map +1 -1
- package/dist/types/escrow.d.ts +10 -17
- package/dist/types/escrow.d.ts.map +1 -1
- package/dist/types/index.d.ts +0 -5
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +0 -8
- package/dist/types/index.js.map +1 -1
- package/dist/types/message.d.ts +0 -32
- package/dist/types/message.d.ts.map +1 -1
- package/dist/types/message.js +0 -4
- package/dist/types/message.js.map +1 -1
- package/dist/types/state.d.ts +0 -28
- package/dist/types/state.d.ts.map +1 -1
- package/dist/types/state.js +6 -37
- package/dist/types/state.js.map +1 -1
- package/dist/types/transaction.d.ts +0 -17
- package/dist/types/transaction.d.ts.map +1 -1
- package/dist/utils/IPFSClient.d.ts +0 -113
- package/dist/utils/IPFSClient.d.ts.map +1 -1
- package/dist/utils/IPFSClient.js +7 -128
- package/dist/utils/IPFSClient.js.map +1 -1
- package/dist/utils/NonceManager.d.ts +1 -234
- package/dist/utils/NonceManager.d.ts.map +1 -1
- package/dist/utils/NonceManager.js +7 -372
- package/dist/utils/NonceManager.js.map +1 -1
- package/dist/utils/ReceivedNonceTracker.d.ts +0 -175
- package/dist/utils/ReceivedNonceTracker.d.ts.map +1 -1
- package/dist/utils/ReceivedNonceTracker.js +5 -261
- package/dist/utils/ReceivedNonceTracker.js.map +1 -1
- package/dist/utils/canonicalJson.d.ts +0 -22
- package/dist/utils/canonicalJson.d.ts.map +1 -1
- package/dist/utils/canonicalJson.js +3 -26
- package/dist/utils/canonicalJson.js.map +1 -1
- package/dist/utils/computeTypeHash.d.ts +0 -14
- package/dist/utils/computeTypeHash.d.ts.map +1 -1
- package/dist/utils/computeTypeHash.js +2 -19
- package/dist/utils/computeTypeHash.js.map +1 -1
- package/dist/utils/validation.d.ts +0 -40
- package/dist/utils/validation.d.ts.map +1 -1
- package/dist/utils/validation.js +7 -184
- package/dist/utils/validation.js.map +1 -1
- package/package.json +37 -54
- package/src/ACTPClient.ts +178 -692
- package/src/__tests__/ProofGenerator.test.ts +124 -0
- package/src/__tests__/QuoteBuilder.test.ts +516 -0
- package/src/__tests__/StateMachine.test.ts +82 -0
- package/src/__tests__/builders/DeliveryProofBuilder.test.ts +581 -0
- package/src/__tests__/integration/ACTPClient.test.ts +263 -0
- package/src/__tests__/integration.test.ts +289 -0
- package/src/__tests__/protocol/EASHelper.test.ts +472 -0
- package/src/__tests__/protocol/EventMonitor.test.ts +382 -0
- package/src/__tests__/security/ACTPKernel.security.test.ts +1167 -0
- package/src/__tests__/security/EscrowVault.security.test.ts +570 -0
- package/src/__tests__/security/MessageSigner.security.test.ts +286 -0
- package/src/__tests__/security/NonceReplay.security.test.ts +501 -0
- package/src/__tests__/security/validation.security.test.ts +376 -0
- package/src/__tests__/utils/IPFSClient.test.ts +262 -0
- package/src/__tests__/utils/NonceManager.test.ts +205 -0
- package/src/__tests__/utils/canonicalJson.test.ts +153 -0
- package/src/abi/EscrowVault.json +38 -106
- package/src/builders/DeliveryProofBuilder.ts +2 -3
- package/src/config/networks.ts +9 -32
- package/src/errors/index.ts +1 -298
- package/src/index.ts +71 -207
- package/src/protocol/ACTPKernel.ts +23 -175
- package/src/protocol/EASHelper.ts +46 -230
- package/src/protocol/EscrowVault.ts +50 -68
- package/src/protocol/EventMonitor.ts +15 -44
- package/src/protocol/MessageSigner.ts +13 -193
- package/src/protocol/ProofGenerator.ts +4 -223
- package/src/types/escrow.ts +11 -12
- package/src/types/index.ts +1 -5
- package/src/types/state.ts +3 -12
- package/src/types/transaction.ts +1 -4
- package/src/utils/IPFSClient.ts +5 -122
- package/src/utils/NonceManager.ts +8 -305
- package/src/utils/ReceivedNonceTracker.ts +0 -170
- package/src/utils/validation.ts +0 -164
- package/LICENSE +0 -190
- package/bin/actp +0 -10
- package/dist/abi/AgentRegistry.json +0 -782
- package/dist/abi/IdentityRegistry.json +0 -316
- package/dist/adapters/BaseAdapter.d.ts +0 -231
- package/dist/adapters/BaseAdapter.d.ts.map +0 -1
- package/dist/adapters/BaseAdapter.js +0 -393
- package/dist/adapters/BaseAdapter.js.map +0 -1
- package/dist/adapters/BeginnerAdapter.d.ts +0 -152
- package/dist/adapters/BeginnerAdapter.d.ts.map +0 -1
- package/dist/adapters/BeginnerAdapter.js +0 -168
- package/dist/adapters/BeginnerAdapter.js.map +0 -1
- package/dist/adapters/IntermediateAdapter.d.ts +0 -211
- package/dist/adapters/IntermediateAdapter.d.ts.map +0 -1
- package/dist/adapters/IntermediateAdapter.js +0 -260
- package/dist/adapters/IntermediateAdapter.js.map +0 -1
- package/dist/adapters/index.d.ts +0 -15
- package/dist/adapters/index.d.ts.map +0 -1
- package/dist/adapters/index.js +0 -26
- package/dist/adapters/index.js.map +0 -1
- package/dist/cli/commands/balance.d.ts +0 -13
- package/dist/cli/commands/balance.d.ts.map +0 -1
- package/dist/cli/commands/balance.js +0 -89
- package/dist/cli/commands/balance.js.map +0 -1
- package/dist/cli/commands/batch.d.ts +0 -24
- package/dist/cli/commands/batch.d.ts.map +0 -1
- package/dist/cli/commands/batch.js +0 -424
- package/dist/cli/commands/batch.js.map +0 -1
- package/dist/cli/commands/config.d.ts +0 -13
- package/dist/cli/commands/config.d.ts.map +0 -1
- package/dist/cli/commands/config.js +0 -192
- package/dist/cli/commands/config.js.map +0 -1
- package/dist/cli/commands/init.d.ts +0 -19
- package/dist/cli/commands/init.d.ts.map +0 -1
- package/dist/cli/commands/init.js +0 -143
- package/dist/cli/commands/init.js.map +0 -1
- package/dist/cli/commands/mint.d.ts +0 -13
- package/dist/cli/commands/mint.d.ts.map +0 -1
- package/dist/cli/commands/mint.js +0 -91
- package/dist/cli/commands/mint.js.map +0 -1
- package/dist/cli/commands/pay.d.ts +0 -18
- package/dist/cli/commands/pay.d.ts.map +0 -1
- package/dist/cli/commands/pay.js +0 -87
- package/dist/cli/commands/pay.js.map +0 -1
- package/dist/cli/commands/simulate.d.ts +0 -32
- package/dist/cli/commands/simulate.d.ts.map +0 -1
- package/dist/cli/commands/simulate.js +0 -290
- package/dist/cli/commands/simulate.js.map +0 -1
- package/dist/cli/commands/time.d.ts +0 -29
- package/dist/cli/commands/time.d.ts.map +0 -1
- package/dist/cli/commands/time.js +0 -252
- package/dist/cli/commands/time.js.map +0 -1
- package/dist/cli/commands/tx.d.ts +0 -16
- package/dist/cli/commands/tx.d.ts.map +0 -1
- package/dist/cli/commands/tx.js +0 -379
- package/dist/cli/commands/tx.js.map +0 -1
- package/dist/cli/commands/watch.d.ts +0 -20
- package/dist/cli/commands/watch.d.ts.map +0 -1
- package/dist/cli/commands/watch.js +0 -160
- package/dist/cli/commands/watch.js.map +0 -1
- package/dist/cli/index.d.ts +0 -17
- package/dist/cli/index.d.ts.map +0 -1
- package/dist/cli/index.js +0 -104
- package/dist/cli/index.js.map +0 -1
- package/dist/cli/utils/client.d.ts +0 -70
- package/dist/cli/utils/client.d.ts.map +0 -1
- package/dist/cli/utils/client.js +0 -240
- package/dist/cli/utils/client.js.map +0 -1
- package/dist/cli/utils/config.d.ts +0 -91
- package/dist/cli/utils/config.d.ts.map +0 -1
- package/dist/cli/utils/config.js +0 -240
- package/dist/cli/utils/config.js.map +0 -1
- package/dist/cli/utils/output.d.ts +0 -174
- package/dist/cli/utils/output.d.ts.map +0 -1
- package/dist/cli/utils/output.js +0 -380
- package/dist/cli/utils/output.js.map +0 -1
- package/dist/level0/Provider.d.ts +0 -106
- package/dist/level0/Provider.d.ts.map +0 -1
- package/dist/level0/Provider.js +0 -10
- package/dist/level0/Provider.js.map +0 -1
- package/dist/level0/ServiceDirectory.d.ts +0 -74
- package/dist/level0/ServiceDirectory.d.ts.map +0 -1
- package/dist/level0/ServiceDirectory.js +0 -122
- package/dist/level0/ServiceDirectory.js.map +0 -1
- package/dist/level0/index.d.ts +0 -10
- package/dist/level0/index.d.ts.map +0 -1
- package/dist/level0/index.js +0 -15
- package/dist/level0/index.js.map +0 -1
- package/dist/level0/provide.d.ts +0 -51
- package/dist/level0/provide.d.ts.map +0 -1
- package/dist/level0/provide.js +0 -113
- package/dist/level0/provide.js.map +0 -1
- package/dist/level0/request.d.ts +0 -53
- package/dist/level0/request.d.ts.map +0 -1
- package/dist/level0/request.js +0 -462
- package/dist/level0/request.js.map +0 -1
- package/dist/level1/Agent.d.ts +0 -472
- package/dist/level1/Agent.d.ts.map +0 -1
- package/dist/level1/Agent.js +0 -1091
- package/dist/level1/Agent.js.map +0 -1
- package/dist/level1/index.d.ts +0 -10
- package/dist/level1/index.d.ts.map +0 -1
- package/dist/level1/index.js +0 -30
- package/dist/level1/index.js.map +0 -1
- package/dist/level1/pricing/PriceCalculator.d.ts +0 -62
- package/dist/level1/pricing/PriceCalculator.d.ts.map +0 -1
- package/dist/level1/pricing/PriceCalculator.js +0 -237
- package/dist/level1/pricing/PriceCalculator.js.map +0 -1
- package/dist/level1/pricing/PricingStrategy.d.ts +0 -179
- package/dist/level1/pricing/PricingStrategy.d.ts.map +0 -1
- package/dist/level1/pricing/PricingStrategy.js +0 -11
- package/dist/level1/pricing/PricingStrategy.js.map +0 -1
- package/dist/level1/types/Job.d.ts +0 -166
- package/dist/level1/types/Job.d.ts.map +0 -1
- package/dist/level1/types/Job.js +0 -11
- package/dist/level1/types/Job.js.map +0 -1
- package/dist/level1/types/Options.d.ts +0 -258
- package/dist/level1/types/Options.d.ts.map +0 -1
- package/dist/level1/types/Options.js +0 -8
- package/dist/level1/types/Options.js.map +0 -1
- package/dist/level1/types/index.d.ts +0 -8
- package/dist/level1/types/index.d.ts.map +0 -1
- package/dist/level1/types/index.js +0 -8
- package/dist/level1/types/index.js.map +0 -1
- package/dist/protocol/AgentRegistry.d.ts +0 -177
- package/dist/protocol/AgentRegistry.d.ts.map +0 -1
- package/dist/protocol/AgentRegistry.js +0 -449
- package/dist/protocol/AgentRegistry.js.map +0 -1
- package/dist/protocol/DIDManager.d.ts +0 -289
- package/dist/protocol/DIDManager.d.ts.map +0 -1
- package/dist/protocol/DIDManager.js +0 -481
- package/dist/protocol/DIDManager.js.map +0 -1
- package/dist/protocol/DIDResolver.d.ts +0 -236
- package/dist/protocol/DIDResolver.d.ts.map +0 -1
- package/dist/protocol/DIDResolver.js +0 -495
- package/dist/protocol/DIDResolver.js.map +0 -1
- package/dist/runtime/BlockchainRuntime.d.ts +0 -360
- package/dist/runtime/BlockchainRuntime.d.ts.map +0 -1
- package/dist/runtime/BlockchainRuntime.js +0 -767
- package/dist/runtime/BlockchainRuntime.js.map +0 -1
- package/dist/runtime/IACTPRuntime.d.ts +0 -271
- package/dist/runtime/IACTPRuntime.d.ts.map +0 -1
- package/dist/runtime/IACTPRuntime.js +0 -15
- package/dist/runtime/IACTPRuntime.js.map +0 -1
- package/dist/runtime/MockRuntime.d.ts +0 -445
- package/dist/runtime/MockRuntime.d.ts.map +0 -1
- package/dist/runtime/MockRuntime.js +0 -1065
- package/dist/runtime/MockRuntime.js.map +0 -1
- package/dist/runtime/MockStateManager.d.ts +0 -233
- package/dist/runtime/MockStateManager.d.ts.map +0 -1
- package/dist/runtime/MockStateManager.js +0 -533
- package/dist/runtime/MockStateManager.js.map +0 -1
- package/dist/runtime/index.d.ts +0 -14
- package/dist/runtime/index.d.ts.map +0 -1
- package/dist/runtime/index.js +0 -42
- package/dist/runtime/index.js.map +0 -1
- package/dist/runtime/types/MockState.d.ts +0 -167
- package/dist/runtime/types/MockState.d.ts.map +0 -1
- package/dist/runtime/types/MockState.js +0 -43
- package/dist/runtime/types/MockState.js.map +0 -1
- package/dist/types/agent.d.ts +0 -76
- package/dist/types/agent.d.ts.map +0 -1
- package/dist/types/agent.js +0 -8
- package/dist/types/agent.js.map +0 -1
- package/dist/types/did.d.ts +0 -192
- package/dist/types/did.d.ts.map +0 -1
- package/dist/types/did.js +0 -38
- package/dist/types/did.js.map +0 -1
- package/dist/utils/ErrorRecoveryGuide.d.ts +0 -125
- package/dist/utils/ErrorRecoveryGuide.d.ts.map +0 -1
- package/dist/utils/ErrorRecoveryGuide.js +0 -579
- package/dist/utils/ErrorRecoveryGuide.js.map +0 -1
- package/dist/utils/Helpers.d.ts +0 -453
- package/dist/utils/Helpers.d.ts.map +0 -1
- package/dist/utils/Helpers.js +0 -623
- package/dist/utils/Helpers.js.map +0 -1
- package/dist/utils/Logger.d.ts +0 -195
- package/dist/utils/Logger.d.ts.map +0 -1
- package/dist/utils/Logger.js +0 -382
- package/dist/utils/Logger.js.map +0 -1
- package/dist/utils/RateLimiter.d.ts +0 -253
- package/dist/utils/RateLimiter.d.ts.map +0 -1
- package/dist/utils/RateLimiter.js +0 -424
- package/dist/utils/RateLimiter.js.map +0 -1
- package/dist/utils/SDKLifecycle.d.ts +0 -156
- package/dist/utils/SDKLifecycle.d.ts.map +0 -1
- package/dist/utils/SDKLifecycle.js +0 -347
- package/dist/utils/SDKLifecycle.js.map +0 -1
- package/dist/utils/SecureNonce.d.ts +0 -57
- package/dist/utils/SecureNonce.d.ts.map +0 -1
- package/dist/utils/SecureNonce.js +0 -80
- package/dist/utils/SecureNonce.js.map +0 -1
- package/dist/utils/Semaphore.d.ts +0 -123
- package/dist/utils/Semaphore.d.ts.map +0 -1
- package/dist/utils/Semaphore.js +0 -247
- package/dist/utils/Semaphore.js.map +0 -1
- package/dist/utils/UsedAttestationTracker.d.ts +0 -167
- package/dist/utils/UsedAttestationTracker.d.ts.map +0 -1
- package/dist/utils/UsedAttestationTracker.js +0 -309
- package/dist/utils/UsedAttestationTracker.js.map +0 -1
- package/dist/utils/fsSafe.d.ts +0 -14
- package/dist/utils/fsSafe.d.ts.map +0 -1
- package/dist/utils/fsSafe.js +0 -89
- package/dist/utils/fsSafe.js.map +0 -1
- package/dist/utils/index.d.ts +0 -15
- package/dist/utils/index.d.ts.map +0 -1
- package/dist/utils/index.js +0 -51
- package/dist/utils/index.js.map +0 -1
- package/dist/utils/security.d.ts +0 -147
- package/dist/utils/security.d.ts.map +0 -1
- package/dist/utils/security.js +0 -391
- package/dist/utils/security.js.map +0 -1
- package/src/abi/AgentRegistry.json +0 -782
- package/src/abi/IdentityRegistry.json +0 -316
- package/src/adapters/BaseAdapter.ts +0 -473
- package/src/adapters/BeginnerAdapter.ts +0 -232
- package/src/adapters/IntermediateAdapter.ts +0 -316
- package/src/adapters/index.ts +0 -25
- package/src/cli/commands/balance.ts +0 -110
- package/src/cli/commands/batch.ts +0 -487
- package/src/cli/commands/config.ts +0 -231
- package/src/cli/commands/init.ts +0 -161
- package/src/cli/commands/mint.ts +0 -116
- package/src/cli/commands/pay.ts +0 -113
- package/src/cli/commands/simulate.ts +0 -345
- package/src/cli/commands/time.ts +0 -303
- package/src/cli/commands/tx.ts +0 -448
- package/src/cli/commands/watch.ts +0 -211
- package/src/cli/index.ts +0 -116
- package/src/cli/utils/client.ts +0 -249
- package/src/cli/utils/config.ts +0 -282
- package/src/cli/utils/output.ts +0 -465
- package/src/level0/Provider.ts +0 -117
- package/src/level0/ServiceDirectory.ts +0 -131
- package/src/level0/index.ts +0 -10
- package/src/level0/provide.ts +0 -131
- package/src/level0/request.ts +0 -494
- package/src/level1/Agent.ts +0 -1432
- package/src/level1/index.ts +0 -10
- package/src/level1/pricing/PriceCalculator.ts +0 -255
- package/src/level1/pricing/PricingStrategy.ts +0 -198
- package/src/level1/types/Job.ts +0 -179
- package/src/level1/types/Options.ts +0 -291
- package/src/level1/types/index.ts +0 -8
- package/src/protocol/AgentRegistry.ts +0 -559
- package/src/protocol/DIDManager.ts +0 -629
- package/src/protocol/DIDResolver.ts +0 -554
- package/src/runtime/BlockchainRuntime.ts +0 -993
- package/src/runtime/IACTPRuntime.ts +0 -284
- package/src/runtime/MockRuntime.ts +0 -1244
- package/src/runtime/MockStateManager.ts +0 -576
- package/src/runtime/index.ts +0 -25
- package/src/runtime/types/MockState.ts +0 -227
- package/src/types/agent.ts +0 -79
- package/src/types/did.ts +0 -223
- package/src/utils/ErrorRecoveryGuide.ts +0 -675
- package/src/utils/Helpers.ts +0 -688
- package/src/utils/Logger.ts +0 -484
- package/src/utils/RateLimiter.ts +0 -534
- package/src/utils/SDKLifecycle.ts +0 -416
- package/src/utils/SecureNonce.ts +0 -78
- package/src/utils/Semaphore.ts +0 -276
- package/src/utils/UsedAttestationTracker.ts +0 -387
- package/src/utils/fsSafe.ts +0 -75
- package/src/utils/index.ts +0 -80
- package/src/utils/security.ts +0 -418
|
@@ -1,267 +1,34 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Nonce Manager Implementation
|
|
3
|
-
* Tracks nonces per DID + message type for AIP-4 delivery proofs
|
|
4
|
-
* Reference: AIP-4 §3.2 (nonce field requirement)
|
|
5
|
-
*
|
|
6
|
-
* SECURITY FIXES:
|
|
7
|
-
* - C-2: Added atomic nonce allocation with locking
|
|
8
|
-
* - H-1: Added persistent nonce storage option
|
|
9
|
-
* - H-5: Added nonce upper bound validation
|
|
10
|
-
*/
|
|
11
|
-
/**
|
|
12
|
-
* Maximum allowed nonce value.
|
|
13
|
-
* SECURITY FIX (H-5): Prevents nonce overflow attacks.
|
|
14
|
-
* Using Number.MAX_SAFE_INTEGER (2^53 - 1) to ensure safe JavaScript integer operations.
|
|
15
|
-
*/
|
|
16
|
-
export declare const MAX_NONCE_VALUE: number;
|
|
17
|
-
/**
|
|
18
|
-
* Nonce Manager Interface (from DeliveryProofBuilder)
|
|
19
|
-
*/
|
|
20
1
|
export interface NonceManager {
|
|
21
|
-
/**
|
|
22
|
-
* Get next nonce for message type
|
|
23
|
-
* @param messageType - Message type identifier (e.g., "agirails.delivery.v1")
|
|
24
|
-
* @returns Monotonically increasing nonce
|
|
25
|
-
*/
|
|
26
2
|
getNextNonce(messageType: string): number;
|
|
27
|
-
/**
|
|
28
|
-
* Record nonce usage
|
|
29
|
-
* @param messageType - Message type identifier
|
|
30
|
-
* @param nonce - Nonce used
|
|
31
|
-
*/
|
|
32
3
|
recordNonce(messageType: string, nonce: number): void;
|
|
33
|
-
/**
|
|
34
|
-
* Get current nonce (last used)
|
|
35
|
-
* @param messageType - Message type identifier
|
|
36
|
-
* @returns Current nonce or 0 if none used
|
|
37
|
-
*/
|
|
38
4
|
getCurrentNonce(messageType: string): number;
|
|
39
|
-
/**
|
|
40
|
-
* Reset nonce for message type
|
|
41
|
-
* @param messageType - Message type identifier
|
|
42
|
-
*/
|
|
43
5
|
resetNonce(messageType: string): void;
|
|
44
6
|
}
|
|
45
|
-
/**
|
|
46
|
-
* In-Memory Nonce Manager
|
|
47
|
-
* Simple implementation using Map for per-message-type nonce tracking
|
|
48
|
-
*
|
|
49
|
-
* SECURITY FIXES:
|
|
50
|
-
* - C-2: Added atomic getAndIncrementNonce() to prevent race conditions
|
|
51
|
-
* - H-5: Added nonce upper bound validation
|
|
52
|
-
*
|
|
53
|
-
* ⚠️ WARNING: Nonces are lost on process restart. For production:
|
|
54
|
-
* - Use persistent storage (Redis, PostgreSQL, etc.)
|
|
55
|
-
* - Implement nonce recovery from blockchain events
|
|
56
|
-
* - Add DID-scoped nonce tracking
|
|
57
|
-
*/
|
|
58
7
|
export declare class InMemoryNonceManager implements NonceManager {
|
|
59
8
|
private nonces;
|
|
60
|
-
private locks;
|
|
61
|
-
/**
|
|
62
|
-
* Create in-memory nonce manager
|
|
63
|
-
* @param initialNonces - Optional initial nonce values (for recovery)
|
|
64
|
-
*/
|
|
65
9
|
constructor(initialNonces?: Record<string, number>);
|
|
66
|
-
/**
|
|
67
|
-
* SECURITY FIX (C-2 + DEADLOCK-FIX): Acquire lock for message type
|
|
68
|
-
* Ensures atomic nonce operations.
|
|
69
|
-
*
|
|
70
|
-
* FIXED: Previous implementation had a deadlock bug where:
|
|
71
|
-
* - The resolver was stored in a closure but never accessible to releaseLock()
|
|
72
|
-
* - releaseLock() just deleted the entry without resolving waiting Promises
|
|
73
|
-
*
|
|
74
|
-
* New implementation stores both promise AND resolver together.
|
|
75
|
-
*/
|
|
76
|
-
private acquireLock;
|
|
77
|
-
/**
|
|
78
|
-
* SECURITY FIX (C-2 + DEADLOCK-FIX): Release lock for message type
|
|
79
|
-
*
|
|
80
|
-
* FIXED: Now properly resolves the Promise before deleting,
|
|
81
|
-
* so any waiting acquireLock() calls can proceed.
|
|
82
|
-
*/
|
|
83
|
-
private releaseLock;
|
|
84
|
-
/**
|
|
85
|
-
* Get next nonce for message type
|
|
86
|
-
* @param messageType - Message type identifier
|
|
87
|
-
* @returns Monotonically increasing nonce
|
|
88
|
-
*/
|
|
89
10
|
getNextNonce(messageType: string): number;
|
|
90
|
-
/**
|
|
91
|
-
* SECURITY FIX (C-2): Atomic get-and-increment nonce
|
|
92
|
-
* Returns the next nonce and records it atomically to prevent race conditions.
|
|
93
|
-
*
|
|
94
|
-
* @param messageType - Message type identifier
|
|
95
|
-
* @returns Atomically allocated nonce
|
|
96
|
-
*/
|
|
97
|
-
getAndIncrementNonce(messageType: string): Promise<number>;
|
|
98
|
-
/**
|
|
99
|
-
* Record nonce usage
|
|
100
|
-
* @param messageType - Message type identifier
|
|
101
|
-
* @param nonce - Nonce used
|
|
102
|
-
*/
|
|
103
11
|
recordNonce(messageType: string, nonce: number): void;
|
|
104
|
-
/**
|
|
105
|
-
* Get current nonce (last used)
|
|
106
|
-
* @param messageType - Message type identifier
|
|
107
|
-
* @returns Current nonce or 0 if none used
|
|
108
|
-
*/
|
|
109
12
|
getCurrentNonce(messageType: string): number;
|
|
110
|
-
/**
|
|
111
|
-
* Reset nonce for message type
|
|
112
|
-
* @param messageType - Message type identifier
|
|
113
|
-
*/
|
|
114
13
|
resetNonce(messageType: string): void;
|
|
115
|
-
/**
|
|
116
|
-
* Get all nonces (for persistence)
|
|
117
|
-
* @returns Record of all message type nonces
|
|
118
|
-
*/
|
|
119
14
|
getAllNonces(): Record<string, number>;
|
|
120
|
-
/**
|
|
121
|
-
* Clear all nonces
|
|
122
|
-
*/
|
|
123
15
|
clearAll(): void;
|
|
124
16
|
}
|
|
125
|
-
/**
|
|
126
|
-
* DID-Scoped Nonce Manager
|
|
127
|
-
* Tracks nonces per DID + message type combination
|
|
128
|
-
* Recommended for multi-agent scenarios
|
|
129
|
-
*/
|
|
130
17
|
export declare class DIDScopedNonceManager implements NonceManager {
|
|
131
18
|
private nonces;
|
|
132
19
|
private currentDID;
|
|
133
|
-
/**
|
|
134
|
-
* Create DID-scoped nonce manager
|
|
135
|
-
* @param did - DID to track nonces for
|
|
136
|
-
* @param initialNonces - Optional initial nonce values
|
|
137
|
-
*/
|
|
138
20
|
constructor(did: string, initialNonces?: Record<string, number>);
|
|
139
|
-
/**
|
|
140
|
-
* Get next nonce for message type (current DID)
|
|
141
|
-
* @param messageType - Message type identifier
|
|
142
|
-
* @returns Monotonically increasing nonce
|
|
143
|
-
*/
|
|
144
21
|
getNextNonce(messageType: string): number;
|
|
145
|
-
/**
|
|
146
|
-
* Record nonce usage (current DID)
|
|
147
|
-
* @param messageType - Message type identifier
|
|
148
|
-
* @param nonce - Nonce used
|
|
149
|
-
*/
|
|
150
22
|
recordNonce(messageType: string, nonce: number): void;
|
|
151
|
-
/**
|
|
152
|
-
* Get current nonce (current DID)
|
|
153
|
-
* @param messageType - Message type identifier
|
|
154
|
-
* @returns Current nonce or 0 if none used
|
|
155
|
-
*/
|
|
156
23
|
getCurrentNonce(messageType: string): number;
|
|
157
|
-
/**
|
|
158
|
-
* Reset nonce for message type (current DID)
|
|
159
|
-
* @param messageType - Message type identifier
|
|
160
|
-
*/
|
|
161
24
|
resetNonce(messageType: string): void;
|
|
162
|
-
/**
|
|
163
|
-
* Get next nonce for specific DID + message type
|
|
164
|
-
* @param did - DID identifier
|
|
165
|
-
* @param messageType - Message type identifier
|
|
166
|
-
* @returns Monotonically increasing nonce
|
|
167
|
-
*/
|
|
168
25
|
getNextNonceForDID(did: string, messageType: string): number;
|
|
169
|
-
/**
|
|
170
|
-
* Record nonce usage for specific DID + message type
|
|
171
|
-
* @param did - DID identifier
|
|
172
|
-
* @param messageType - Message type identifier
|
|
173
|
-
* @param nonce - Nonce used
|
|
174
|
-
*/
|
|
175
26
|
recordNonceForDID(did: string, messageType: string, nonce: number): void;
|
|
176
|
-
/**
|
|
177
|
-
* Get current nonce for specific DID + message type
|
|
178
|
-
* @param did - DID identifier
|
|
179
|
-
* @param messageType - Message type identifier
|
|
180
|
-
* @returns Current nonce or 0 if none used
|
|
181
|
-
*/
|
|
182
27
|
getCurrentNonceForDID(did: string, messageType: string): number;
|
|
183
|
-
/**
|
|
184
|
-
* Reset nonce for specific DID + message type
|
|
185
|
-
* @param did - DID identifier
|
|
186
|
-
* @param messageType - Message type identifier
|
|
187
|
-
*/
|
|
188
28
|
resetNonceForDID(did: string, messageType: string): void;
|
|
189
|
-
/**
|
|
190
|
-
* Switch current DID context
|
|
191
|
-
* @param did - New DID to track
|
|
192
|
-
*/
|
|
193
29
|
switchDID(did: string): void;
|
|
194
|
-
/**
|
|
195
|
-
* Get all nonces for all DIDs (for persistence)
|
|
196
|
-
* @returns Nested record of DID → message type → nonce
|
|
197
|
-
*/
|
|
198
30
|
getAllNonces(): Record<string, Record<string, number>>;
|
|
199
|
-
/**
|
|
200
|
-
* Clear all nonces for all DIDs
|
|
201
|
-
*/
|
|
202
31
|
clearAll(): void;
|
|
203
32
|
}
|
|
204
|
-
|
|
205
|
-
* File-based Nonce Manager for Persistent Storage
|
|
206
|
-
*
|
|
207
|
-
* SECURITY FIX (H-1): Persists nonces to disk to survive process restarts.
|
|
208
|
-
* SECURITY FIX (NEW-H-4): File locking to prevent concurrent write corruption.
|
|
209
|
-
* Uses atomic file writes (temp file + rename) for crash safety.
|
|
210
|
-
*
|
|
211
|
-
* @module utils/NonceManager
|
|
212
|
-
*/
|
|
213
|
-
export declare class FileBasedNonceManager implements NonceManager {
|
|
214
|
-
private inMemory;
|
|
215
|
-
private filePath;
|
|
216
|
-
private fs;
|
|
217
|
-
private path;
|
|
218
|
-
private lockfile;
|
|
219
|
-
/**
|
|
220
|
-
* Create file-based nonce manager
|
|
221
|
-
* @param stateDirectory - Directory to store nonces file
|
|
222
|
-
*/
|
|
223
|
-
constructor(stateDirectory: string);
|
|
224
|
-
/**
|
|
225
|
-
* Load nonces from file
|
|
226
|
-
*/
|
|
227
|
-
private loadFromFile;
|
|
228
|
-
/**
|
|
229
|
-
* Save nonces to file atomically with file locking
|
|
230
|
-
*
|
|
231
|
-
* SECURITY FIX (NEW-H-4): File locking prevents concurrent write corruption
|
|
232
|
-
*/
|
|
233
|
-
private saveToFile;
|
|
234
|
-
getNextNonce(messageType: string): number;
|
|
235
|
-
/**
|
|
236
|
-
* Atomic get and increment with persistence
|
|
237
|
-
*/
|
|
238
|
-
getAndIncrementNonce(messageType: string): Promise<number>;
|
|
239
|
-
recordNonce(messageType: string, nonce: number): void;
|
|
240
|
-
getCurrentNonce(messageType: string): number;
|
|
241
|
-
resetNonce(messageType: string): void;
|
|
242
|
-
getAllNonces(): Record<string, number>;
|
|
243
|
-
clearAll(): void;
|
|
244
|
-
}
|
|
245
|
-
/**
|
|
246
|
-
* Create nonce manager based on environment
|
|
247
|
-
* @param options - Configuration options
|
|
248
|
-
* @returns NonceManager instance
|
|
249
|
-
*
|
|
250
|
-
* @example
|
|
251
|
-
* ```typescript
|
|
252
|
-
* // In-memory (default)
|
|
253
|
-
* const manager = createNonceManager();
|
|
254
|
-
*
|
|
255
|
-
* // DID-scoped
|
|
256
|
-
* const manager = createNonceManager({ did: 'did:ethr:0x...' });
|
|
257
|
-
*
|
|
258
|
-
* // Persistent (survives restarts)
|
|
259
|
-
* const manager = createNonceManager({ stateDirectory: '/path/to/project' });
|
|
260
|
-
* ```
|
|
261
|
-
*/
|
|
262
|
-
export declare function createNonceManager(options?: {
|
|
263
|
-
did?: string;
|
|
264
|
-
initialNonces?: Record<string, number>;
|
|
265
|
-
stateDirectory?: string;
|
|
266
|
-
}): NonceManager;
|
|
33
|
+
export declare function createNonceManager(did?: string, initialNonces?: Record<string, number>): NonceManager;
|
|
267
34
|
//# sourceMappingURL=NonceManager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NonceManager.d.ts","sourceRoot":"","sources":["../../src/utils/NonceManager.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"NonceManager.d.ts","sourceRoot":"","sources":["../../src/utils/NonceManager.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,YAAY;IAM3B,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAAC;IAO1C,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAOtD,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAAC;IAM7C,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CACvC;AAWD,qBAAa,oBAAqB,YAAW,YAAY;IACvD,OAAO,CAAC,MAAM,CAAkC;gBAMpC,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAalD,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM;IAUzC,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAkBrD,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM;IAQ5C,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAQrC,YAAY,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAOtC,QAAQ,IAAI,IAAI;CAGjB;AAOD,qBAAa,qBAAsB,YAAW,YAAY;IACxD,OAAO,CAAC,MAAM,CAA+C;IAC7D,OAAO,CAAC,UAAU,CAAS;gBAOf,GAAG,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAiB/D,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM;IASzC,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IASrD,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM;IAQ5C,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAUrC,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM;IAe5D,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IA0BxE,qBAAqB,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM;IAU/D,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI;IAWxD,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAQ5B,YAAY,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAatD,QAAQ,IAAI,IAAI;CAGjB;AAQD,wBAAgB,kBAAkB,CAChC,GAAG,CAAC,EAAE,MAAM,EACZ,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACrC,YAAY,CAKd"}
|