@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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ACTPKernel.js","sourceRoot":"","sources":["../../src/protocol/ACTPKernel.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ACTPKernel.js","sourceRoot":"","sources":["../../src/protocol/ACTPKernel.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { Signer } from 'ethers';
|
|
2
2
|
import { DeliveryProof } from '../types';
|
|
3
|
-
import { IUsedAttestationTracker } from '../utils/UsedAttestationTracker';
|
|
4
3
|
export interface EASConfig {
|
|
5
4
|
contractAddress: string;
|
|
6
5
|
deliveryProofSchemaId: string;
|
|
@@ -9,70 +8,16 @@ export interface AttestationResponse {
|
|
|
9
8
|
uid: string;
|
|
10
9
|
transactionHash: string;
|
|
11
10
|
}
|
|
12
|
-
/**
|
|
13
|
-
* EASHelper - utility wrapper for Ethereum Attestation Service interactions
|
|
14
|
-
*/
|
|
15
11
|
export declare class EASHelper {
|
|
16
12
|
private readonly config;
|
|
17
13
|
private readonly eas;
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* Create EASHelper instance
|
|
21
|
-
*
|
|
22
|
-
* @param signer - Ethers signer for signing attestations
|
|
23
|
-
* @param config - EAS configuration
|
|
24
|
-
* @param attestationTracker - Optional tracker for replay attack prevention (C-1 fix)
|
|
25
|
-
*
|
|
26
|
-
* SECURITY FIX (NEW-M-2): Validates schema UID format in constructor
|
|
27
|
-
*/
|
|
28
|
-
constructor(signer: Signer, config: EASConfig, attestationTracker?: IUsedAttestationTracker);
|
|
29
|
-
/**
|
|
30
|
-
* Get the attestation tracker for external use
|
|
31
|
-
*/
|
|
32
|
-
getAttestationTracker(): IUsedAttestationTracker;
|
|
33
|
-
/**
|
|
34
|
-
* Create an attestation for a delivery proof. Returns the attestation UID and transaction hash.
|
|
35
|
-
*/
|
|
14
|
+
constructor(signer: Signer, config: EASConfig);
|
|
36
15
|
attestDeliveryProof(proof: DeliveryProof, recipient: string, options?: {
|
|
37
16
|
expirationTime?: number;
|
|
38
17
|
revocable?: boolean;
|
|
39
18
|
}): Promise<AttestationResponse>;
|
|
40
|
-
/**
|
|
41
|
-
* Revoke a previously issued attestation by UID.
|
|
42
|
-
*/
|
|
43
19
|
revokeAttestation(uid: string): Promise<string>;
|
|
44
|
-
|
|
45
|
-
* Fetch attestation data from the EAS contract.
|
|
46
|
-
*/
|
|
47
|
-
getAttestation(uid: string): Promise<import("@ethereum-attestation-service/eas-sdk").Attestation>;
|
|
48
|
-
/**
|
|
49
|
-
* Verify that a delivery attestation belongs to the specified transaction.
|
|
50
|
-
*
|
|
51
|
-
* SECURITY: ACTPKernel V1 accepts any bytes32 as attestationUID without validation.
|
|
52
|
-
* This means a malicious provider could submit attestation from Transaction A
|
|
53
|
-
* for Transaction B. This method provides SDK-side protection by verifying:
|
|
54
|
-
*
|
|
55
|
-
* 1. Attestation exists and is not revoked
|
|
56
|
-
* 2. Attestation uses the canonical delivery schema UID
|
|
57
|
-
* 3. Attestation's txId matches the expected transaction ID
|
|
58
|
-
* 4. Attestation has not expired
|
|
59
|
-
*
|
|
60
|
-
* @param txId - Expected transaction ID (bytes32)
|
|
61
|
-
* @param attestationUID - Attestation UID to verify (bytes32)
|
|
62
|
-
* @returns true if attestation is valid for this transaction, false otherwise
|
|
63
|
-
* @throws Error if attestation is revoked, expired, schema mismatch, or txId mismatch
|
|
64
|
-
*/
|
|
20
|
+
getAttestation(uid: string): Promise<any>;
|
|
65
21
|
verifyDeliveryAttestation(txId: string, attestationUID: string): Promise<boolean>;
|
|
66
|
-
/**
|
|
67
|
-
* Verify attestation for escrow release with mandatory replay protection
|
|
68
|
-
*
|
|
69
|
-
* SECURITY FIX (C-4): This method MUST be called before releaseEscrow()
|
|
70
|
-
* to prevent attestation replay attacks.
|
|
71
|
-
*
|
|
72
|
-
* @param txId - Expected transaction ID (bytes32)
|
|
73
|
-
* @param attestationUID - Attestation UID to verify (bytes32)
|
|
74
|
-
* @throws Error if verification fails or replay attack detected
|
|
75
|
-
*/
|
|
76
|
-
verifyAndRecordForRelease(txId: string, attestationUID: string): Promise<void>;
|
|
77
22
|
}
|
|
78
23
|
//# sourceMappingURL=EASHelper.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EASHelper.d.ts","sourceRoot":"","sources":["../../src/protocol/EASHelper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,MAAM,
|
|
1
|
+
{"version":3,"file":"EASHelper.d.ts","sourceRoot":"","sources":["../../src/protocol/EASHelper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,MAAM,EAA0B,MAAM,QAAQ,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAGzC,MAAM,WAAW,SAAS;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,qBAAqB,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,eAAe,EAAE,MAAM,CAAC;CACzB;AAYD,qBAAa,SAAS;IAGQ,OAAO,CAAC,QAAQ,CAAC,MAAM;IAFnD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAW;gBAEnB,MAAM,EAAE,MAAM,EAAmB,MAAM,EAAE,SAAS;IAOxD,mBAAmB,CACvB,KAAK,EAAE,aAAa,EACpB,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE;QAAE,cAAc,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,GACzD,OAAO,CAAC,mBAAmB,CAAC;IAoDzB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAY/C,cAAc,CAAC,GAAG,EAAE,MAAM;IAqB1B,yBAAyB,CAC7B,IAAI,EAAE,MAAM,EACZ,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,OAAO,CAAC;CAsEpB"}
|
|
@@ -2,62 +2,18 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.EASHelper = void 0;
|
|
4
4
|
const ethers_1 = require("ethers");
|
|
5
|
-
const eas_sdk_1 = require("@ethereum-attestation-service/eas-sdk");
|
|
6
5
|
const eip712_1 = require("../types/eip712");
|
|
7
|
-
const
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
6
|
+
const EAS_ABI = [
|
|
7
|
+
'event Attested(address indexed attester, bytes32 indexed uid, bytes32 indexed schema)',
|
|
8
|
+
'function attest(tuple(bytes32 schema, tuple(address recipient, uint64 expirationTime, bool revocable, bytes32 refUID, bytes data) data) request) external returns (bytes32)',
|
|
9
|
+
'function revoke(tuple(bytes32 schema, bytes32 uid) request) external returns (bytes32)',
|
|
10
|
+
'function getAttestation(bytes32 uid) external view returns (tuple(bytes32 uid, bytes32 schema, address recipient, address attester, uint64 time, uint64 expirationTime, bool revocable, bytes32 refUID, bytes data, uint32 bump))'
|
|
11
|
+
];
|
|
11
12
|
class EASHelper {
|
|
12
|
-
|
|
13
|
-
* Create EASHelper instance
|
|
14
|
-
*
|
|
15
|
-
* @param signer - Ethers signer for signing attestations
|
|
16
|
-
* @param config - EAS configuration
|
|
17
|
-
* @param attestationTracker - Optional tracker for replay attack prevention (C-1 fix)
|
|
18
|
-
*
|
|
19
|
-
* SECURITY FIX (NEW-M-2): Validates schema UID format in constructor
|
|
20
|
-
*/
|
|
21
|
-
constructor(signer, config, attestationTracker) {
|
|
13
|
+
constructor(signer, config) {
|
|
22
14
|
this.config = config;
|
|
23
|
-
|
|
24
|
-
if (!config.deliveryProofSchemaId || !/^0x[a-fA-F0-9]{64}$/.test(config.deliveryProofSchemaId)) {
|
|
25
|
-
throw new Error(`Invalid deliveryProofSchemaId: must be bytes32 hex string (0x...). ` +
|
|
26
|
-
`Got: ${config.deliveryProofSchemaId}`);
|
|
27
|
-
}
|
|
28
|
-
if (config.deliveryProofSchemaId === '0x0000000000000000000000000000000000000000000000000000000000000000') {
|
|
29
|
-
throw new Error('deliveryProofSchemaId cannot be zero bytes32');
|
|
30
|
-
}
|
|
31
|
-
// Use official EAS SDK wrapper to ensure ABI correctness across deployments
|
|
32
|
-
// (includes fields like revocationTime that are required for security checks).
|
|
33
|
-
this.eas = new eas_sdk_1.EAS(config.contractAddress);
|
|
34
|
-
this.eas.connect(signer);
|
|
35
|
-
// SECURITY FIX (C-1): Use provided tracker or create new in-memory one
|
|
36
|
-
if (!attestationTracker) {
|
|
37
|
-
// SECURITY WARNING (HIGH-5): In-memory tracker does not persist across restarts!
|
|
38
|
-
// For production use, provide a FileBasedUsedAttestationTracker with a stateDirectory:
|
|
39
|
-
//
|
|
40
|
-
// import { FileBasedUsedAttestationTracker } from '../utils/UsedAttestationTracker';
|
|
41
|
-
// const tracker = new FileBasedUsedAttestationTracker('/path/to/state');
|
|
42
|
-
// const easHelper = new EASHelper(signer, config, tracker);
|
|
43
|
-
//
|
|
44
|
-
// Without persistence, attestation replay protection is lost on process restart,
|
|
45
|
-
// allowing potential double-spend attacks.
|
|
46
|
-
console.warn('[SECURITY WARNING] EASHelper: Using in-memory attestation tracker. ' +
|
|
47
|
-
'Replay protection will be lost on process restart. ' +
|
|
48
|
-
'For production, provide FileBasedUsedAttestationTracker for persistence.');
|
|
49
|
-
}
|
|
50
|
-
this.attestationTracker = attestationTracker || new UsedAttestationTracker_1.InMemoryUsedAttestationTracker();
|
|
15
|
+
this.eas = new ethers_1.Contract(config.contractAddress, EAS_ABI, signer);
|
|
51
16
|
}
|
|
52
|
-
/**
|
|
53
|
-
* Get the attestation tracker for external use
|
|
54
|
-
*/
|
|
55
|
-
getAttestationTracker() {
|
|
56
|
-
return this.attestationTracker;
|
|
57
|
-
}
|
|
58
|
-
/**
|
|
59
|
-
* Create an attestation for a delivery proof. Returns the attestation UID and transaction hash.
|
|
60
|
-
*/
|
|
61
17
|
async attestDeliveryProof(proof, recipient, options) {
|
|
62
18
|
const { expirationTime = 0, revocable = true } = options || {};
|
|
63
19
|
const proofData = (0, eip712_1.deliveryProofDataFromProof)(proof);
|
|
@@ -74,226 +30,77 @@ class EASHelper {
|
|
|
74
30
|
schema: this.config.deliveryProofSchemaId,
|
|
75
31
|
data: {
|
|
76
32
|
recipient,
|
|
77
|
-
expirationTime
|
|
33
|
+
expirationTime,
|
|
78
34
|
revocable,
|
|
79
35
|
refUID: proof.txId,
|
|
80
|
-
data: encodedData
|
|
81
|
-
// For Base EAS, value is typically 0. Keep explicit to avoid ambiguity.
|
|
82
|
-
value: 0n
|
|
36
|
+
data: encodedData
|
|
83
37
|
}
|
|
84
38
|
});
|
|
85
|
-
const
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
39
|
+
const receipt = await tx.wait();
|
|
40
|
+
const attestedLog = receipt?.logs?.find((log) => {
|
|
41
|
+
try {
|
|
42
|
+
const parsed = this.eas.interface.parseLog(log);
|
|
43
|
+
return parsed?.name === 'Attested';
|
|
44
|
+
}
|
|
45
|
+
catch {
|
|
46
|
+
return false;
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
const uid = attestedLog
|
|
50
|
+
? this.eas.interface.parseLog(attestedLog)?.args?.uid
|
|
51
|
+
: (0, ethers_1.zeroPadValue)('0x00', 32);
|
|
92
52
|
return {
|
|
93
53
|
uid,
|
|
94
|
-
transactionHash:
|
|
54
|
+
transactionHash: receipt.transactionHash
|
|
95
55
|
};
|
|
96
56
|
}
|
|
97
|
-
/**
|
|
98
|
-
* Revoke a previously issued attestation by UID.
|
|
99
|
-
*/
|
|
100
57
|
async revokeAttestation(uid) {
|
|
101
|
-
if (!uid || !/^0x[a-fA-F0-9]{64}$/.test(uid)) {
|
|
102
|
-
throw new Error(`Invalid attestation UID format: ${uid}`);
|
|
103
|
-
}
|
|
104
58
|
const tx = await this.eas.revoke({
|
|
105
59
|
schema: this.config.deliveryProofSchemaId,
|
|
106
|
-
|
|
60
|
+
uid
|
|
107
61
|
});
|
|
108
|
-
await tx.wait();
|
|
109
|
-
return
|
|
62
|
+
const receipt = await tx.wait();
|
|
63
|
+
return receipt.transactionHash;
|
|
110
64
|
}
|
|
111
|
-
/**
|
|
112
|
-
* Fetch attestation data from the EAS contract.
|
|
113
|
-
*/
|
|
114
65
|
async getAttestation(uid) {
|
|
115
|
-
if (!uid || !/^0x[a-fA-F0-9]{64}$/.test(uid)) {
|
|
116
|
-
throw new Error(`Invalid attestation UID format: ${uid}`);
|
|
117
|
-
}
|
|
118
66
|
return await this.eas.getAttestation(uid);
|
|
119
67
|
}
|
|
120
|
-
/**
|
|
121
|
-
* Verify that a delivery attestation belongs to the specified transaction.
|
|
122
|
-
*
|
|
123
|
-
* SECURITY: ACTPKernel V1 accepts any bytes32 as attestationUID without validation.
|
|
124
|
-
* This means a malicious provider could submit attestation from Transaction A
|
|
125
|
-
* for Transaction B. This method provides SDK-side protection by verifying:
|
|
126
|
-
*
|
|
127
|
-
* 1. Attestation exists and is not revoked
|
|
128
|
-
* 2. Attestation uses the canonical delivery schema UID
|
|
129
|
-
* 3. Attestation's txId matches the expected transaction ID
|
|
130
|
-
* 4. Attestation has not expired
|
|
131
|
-
*
|
|
132
|
-
* @param txId - Expected transaction ID (bytes32)
|
|
133
|
-
* @param attestationUID - Attestation UID to verify (bytes32)
|
|
134
|
-
* @returns true if attestation is valid for this transaction, false otherwise
|
|
135
|
-
* @throws Error if attestation is revoked, expired, schema mismatch, or txId mismatch
|
|
136
|
-
*/
|
|
137
68
|
async verifyDeliveryAttestation(txId, attestationUID) {
|
|
138
|
-
if (!txId || !/^0x[a-fA-F0-9]{64}$/.test(txId)) {
|
|
139
|
-
throw new Error(`Invalid txId format (expected bytes32): ${txId}`);
|
|
140
|
-
}
|
|
141
|
-
if (!attestationUID || !/^0x[a-fA-F0-9]{64}$/.test(attestationUID)) {
|
|
142
|
-
throw new Error(`Invalid attestationUID format (expected bytes32): ${attestationUID}`);
|
|
143
|
-
}
|
|
144
|
-
// 1. Fetch attestation from EAS contract
|
|
145
69
|
const attestation = await this.eas.getAttestation(attestationUID);
|
|
146
|
-
// 2. Check if attestation exists (uid should match)
|
|
147
70
|
if (attestation.uid !== attestationUID) {
|
|
148
71
|
throw new Error(`Attestation not found: ${attestationUID}`);
|
|
149
72
|
}
|
|
150
|
-
// 3. Check schema UID matches canonical delivery schema (B2 blocker fix)
|
|
151
|
-
// This prevents accepting attestations from unrelated EAS schemas
|
|
152
73
|
if (attestation.schema !== this.config.deliveryProofSchemaId) {
|
|
153
74
|
throw new Error(`Schema UID mismatch: expected canonical delivery schema ${this.config.deliveryProofSchemaId}, ` +
|
|
154
75
|
`got ${attestation.schema}. Attestation may be from a different schema!`);
|
|
155
76
|
}
|
|
156
|
-
|
|
157
|
-
// revocationTime = 0 means not revoked
|
|
158
|
-
// revocationTime > 0 means revoked at that timestamp
|
|
159
|
-
const revocationTime = BigInt(attestation.revocationTime ?? 0);
|
|
160
|
-
const isRevoked = revocationTime > 0n;
|
|
77
|
+
const isRevoked = attestation.revocationTime > 0n;
|
|
161
78
|
if (isRevoked) {
|
|
162
|
-
throw new Error(`Attestation has been revoked: ${attestationUID} (revoked at timestamp ${revocationTime})`);
|
|
79
|
+
throw new Error(`Attestation has been revoked: ${attestationUID} (revoked at timestamp ${attestation.revocationTime})`);
|
|
163
80
|
}
|
|
164
|
-
|
|
165
|
-
// expirationTime = 0 means no expiration
|
|
166
|
-
// expirationTime > 0 means expires at that timestamp
|
|
167
|
-
const expirationTime = BigInt(attestation.expirationTime ?? 0);
|
|
168
|
-
if (expirationTime > 0n) {
|
|
81
|
+
if (attestation.expirationTime > 0n) {
|
|
169
82
|
const now = Math.floor(Date.now() / 1000);
|
|
170
|
-
if (Number(expirationTime) < now) {
|
|
171
|
-
throw new Error(`Attestation has expired: ${attestationUID} (expired at ${expirationTime})`);
|
|
83
|
+
if (Number(attestation.expirationTime) < now) {
|
|
84
|
+
throw new Error(`Attestation has expired: ${attestationUID} (expired at ${attestation.expirationTime})`);
|
|
172
85
|
}
|
|
173
86
|
}
|
|
174
|
-
|
|
175
|
-
let attestedTxId = '';
|
|
87
|
+
let attestedTxId;
|
|
176
88
|
try {
|
|
177
89
|
const abiCoder = ethers_1.AbiCoder.defaultAbiCoder();
|
|
178
|
-
const
|
|
179
|
-
|
|
180
|
-
// - Official AIP-6: bytes32 txId,string resultCID,bytes32 resultHash,uint256 deliveredAt
|
|
181
|
-
// - Test schema: + uint256 testTimestamp
|
|
182
|
-
try {
|
|
183
|
-
const decoded = abiCoder.decode(['bytes32', 'string', 'bytes32', 'uint256', 'uint256'], rawData);
|
|
184
|
-
attestedTxId = decoded[0];
|
|
185
|
-
const resultCID = decoded[1];
|
|
186
|
-
const resultHash = decoded[2];
|
|
187
|
-
const deliveredAt = decoded[3];
|
|
188
|
-
if (!attestedTxId || !/^0x[a-fA-F0-9]{64}$/.test(attestedTxId)) {
|
|
189
|
-
throw new Error(`Decoded txId is not valid bytes32: ${attestedTxId}`);
|
|
190
|
-
}
|
|
191
|
-
if (typeof resultCID !== 'string' || resultCID.length === 0 || resultCID.length > 2048) {
|
|
192
|
-
throw new Error(`Decoded resultCID invalid length: ${resultCID?.length}`);
|
|
193
|
-
}
|
|
194
|
-
if (!resultHash || !/^0x[a-fA-F0-9]{64}$/.test(resultHash)) {
|
|
195
|
-
throw new Error(`Decoded resultHash is not valid bytes32: ${resultHash}`);
|
|
196
|
-
}
|
|
197
|
-
const now = BigInt(Math.floor(Date.now() / 1000));
|
|
198
|
-
if (deliveredAt > now + 86400n) {
|
|
199
|
-
throw new Error(`Decoded deliveredAt is in far future: ${deliveredAt.toString()}`);
|
|
200
|
-
}
|
|
201
|
-
}
|
|
202
|
-
catch (_e) {
|
|
203
|
-
// Fallback: official AIP-6 schema without testTimestamp
|
|
204
|
-
try {
|
|
205
|
-
const decoded = abiCoder.decode(['bytes32', 'string', 'bytes32', 'uint256'], rawData);
|
|
206
|
-
attestedTxId = decoded[0];
|
|
207
|
-
const resultCID = decoded[1];
|
|
208
|
-
const resultHash = decoded[2];
|
|
209
|
-
const deliveredAt = decoded[3];
|
|
210
|
-
if (!attestedTxId || !/^0x[a-fA-F0-9]{64}$/.test(attestedTxId)) {
|
|
211
|
-
throw new Error(`Decoded txId is not valid bytes32: ${attestedTxId}`);
|
|
212
|
-
}
|
|
213
|
-
if (typeof resultCID !== 'string' || resultCID.length === 0 || resultCID.length > 2048) {
|
|
214
|
-
throw new Error(`Decoded resultCID invalid length: ${resultCID?.length}`);
|
|
215
|
-
}
|
|
216
|
-
if (!resultHash || !/^0x[a-fA-F0-9]{64}$/.test(resultHash)) {
|
|
217
|
-
throw new Error(`Decoded resultHash is not valid bytes32: ${resultHash}`);
|
|
218
|
-
}
|
|
219
|
-
const now = BigInt(Math.floor(Date.now() / 1000));
|
|
220
|
-
if (deliveredAt > now + 86400n) {
|
|
221
|
-
throw new Error(`Decoded deliveredAt is in far future: ${deliveredAt.toString()}`);
|
|
222
|
-
}
|
|
223
|
-
}
|
|
224
|
-
catch (__e) {
|
|
225
|
-
// Final fallback: legacy AIP-4 schema
|
|
226
|
-
// Schema: bytes32 txId, bytes32 contentHash, uint256 timestamp, string deliveryUrl, uint256 size, string mimeType
|
|
227
|
-
const decoded = abiCoder.decode(['bytes32', 'bytes32', 'uint256', 'string', 'uint256', 'string'], rawData);
|
|
228
|
-
attestedTxId = decoded[0];
|
|
229
|
-
const contentHash = decoded[1];
|
|
230
|
-
const timestamp = decoded[2];
|
|
231
|
-
const deliveryUrl = decoded[3];
|
|
232
|
-
const size = decoded[4];
|
|
233
|
-
const mimeType = decoded[5];
|
|
234
|
-
if (!attestedTxId || !/^0x[a-fA-F0-9]{64}$/.test(attestedTxId)) {
|
|
235
|
-
throw new Error(`Decoded txId is not valid bytes32: ${attestedTxId}`);
|
|
236
|
-
}
|
|
237
|
-
if (!contentHash || !/^0x[a-fA-F0-9]{64}$/.test(contentHash)) {
|
|
238
|
-
throw new Error(`Decoded contentHash is not valid bytes32: ${contentHash}`);
|
|
239
|
-
}
|
|
240
|
-
const now = BigInt(Math.floor(Date.now() / 1000));
|
|
241
|
-
if (timestamp > now + 86400n) {
|
|
242
|
-
throw new Error(`Decoded timestamp is in far future: ${timestamp.toString()}`);
|
|
243
|
-
}
|
|
244
|
-
if (typeof deliveryUrl !== 'string' || deliveryUrl.length > 2048) {
|
|
245
|
-
throw new Error('Decoded deliveryUrl too long');
|
|
246
|
-
}
|
|
247
|
-
if (size < 0n) {
|
|
248
|
-
throw new Error(`Decoded size is negative: ${size}`);
|
|
249
|
-
}
|
|
250
|
-
if (typeof mimeType !== 'string' || mimeType.length > 256) {
|
|
251
|
-
throw new Error('Decoded mimeType too long');
|
|
252
|
-
}
|
|
253
|
-
}
|
|
254
|
-
}
|
|
90
|
+
const decoded = abiCoder.decode(['bytes32', 'bytes32', 'uint256', 'string', 'uint256', 'string'], attestation.data);
|
|
91
|
+
attestedTxId = decoded[0];
|
|
255
92
|
}
|
|
256
93
|
catch (error) {
|
|
257
94
|
throw new Error(`Attestation data format mismatch: cannot decode attestation ${attestationUID}. ` +
|
|
258
|
-
`Expected AIP-
|
|
95
|
+
`Expected AIP-4 delivery proof schema format. ` +
|
|
259
96
|
`Original error: ${error.message}`);
|
|
260
97
|
}
|
|
261
|
-
|
|
262
|
-
if (attestedTxId.toLowerCase() !== txId.toLowerCase()) {
|
|
98
|
+
if (attestedTxId !== txId) {
|
|
263
99
|
throw new Error(`Attestation txId mismatch: expected ${txId}, got ${attestedTxId}. ` +
|
|
264
100
|
`Provider may be attempting to use attestation from different transaction!`);
|
|
265
101
|
}
|
|
266
|
-
// SECURITY FIX (C-1): Check if attestation has been used for a different transaction
|
|
267
|
-
if (!this.attestationTracker.isValidForTransaction(attestationUID, txId)) {
|
|
268
|
-
const usedFor = this.attestationTracker.getUsageForAttestation(attestationUID);
|
|
269
|
-
throw new Error(`Attestation replay attack detected: attestation ${attestationUID} ` +
|
|
270
|
-
`was already used for transaction ${usedFor}. ` +
|
|
271
|
-
`Cannot reuse for transaction ${txId}.`);
|
|
272
|
-
}
|
|
273
|
-
// Record this attestation as used for this transaction
|
|
274
|
-
const recorded = await this.attestationTracker.recordUsage(attestationUID, txId);
|
|
275
|
-
if (!recorded) {
|
|
276
|
-
const usedFor = this.attestationTracker.getUsageForAttestation(attestationUID);
|
|
277
|
-
throw new Error(`Attestation replay attack detected: attestation ${attestationUID} ` +
|
|
278
|
-
`was already used for transaction ${usedFor}. Cannot reuse for ${txId}.`);
|
|
279
|
-
}
|
|
280
|
-
// All checks passed
|
|
281
102
|
return true;
|
|
282
103
|
}
|
|
283
|
-
/**
|
|
284
|
-
* Verify attestation for escrow release with mandatory replay protection
|
|
285
|
-
*
|
|
286
|
-
* SECURITY FIX (C-4): This method MUST be called before releaseEscrow()
|
|
287
|
-
* to prevent attestation replay attacks.
|
|
288
|
-
*
|
|
289
|
-
* @param txId - Expected transaction ID (bytes32)
|
|
290
|
-
* @param attestationUID - Attestation UID to verify (bytes32)
|
|
291
|
-
* @throws Error if verification fails or replay attack detected
|
|
292
|
-
*/
|
|
293
|
-
async verifyAndRecordForRelease(txId, attestationUID) {
|
|
294
|
-
// Verify the attestation
|
|
295
|
-
await this.verifyDeliveryAttestation(txId, attestationUID);
|
|
296
|
-
}
|
|
297
104
|
}
|
|
298
105
|
exports.EASHelper = EASHelper;
|
|
299
106
|
//# sourceMappingURL=EASHelper.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EASHelper.js","sourceRoot":"","sources":["../../src/protocol/EASHelper.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"EASHelper.js","sourceRoot":"","sources":["../../src/protocol/EASHelper.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,114 +1,23 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Signer } from 'ethers';
|
|
2
2
|
import { Escrow } from '../types';
|
|
3
|
-
/**
|
|
4
|
-
* Gas options for transactions
|
|
5
|
-
*/
|
|
6
3
|
interface GasOptions {
|
|
7
4
|
maxFeePerGas?: bigint;
|
|
8
5
|
maxPriorityFeePerGas?: bigint;
|
|
9
6
|
}
|
|
10
|
-
/**
|
|
11
|
-
* EscrowVault - Escrow contract wrapper
|
|
12
|
-
*
|
|
13
|
-
* IMPORTANT:
|
|
14
|
-
* - Escrow creation happens atomically inside `ACTPKernel.linkEscrow()`.
|
|
15
|
-
* - Payout/refund functions are `onlyKernel` on-chain and MUST NOT be called by users.
|
|
16
|
-
*
|
|
17
|
-
* This module provides:
|
|
18
|
-
* - Helper methods for USDC approvals (requester → EscrowVault allowance)
|
|
19
|
-
* - Read-only access to escrow state (`escrows()` / `remaining()`)
|
|
20
|
-
*
|
|
21
|
-
* Workflow (per AIP-3):
|
|
22
|
-
* 1. Consumer approves USDC to EscrowVault address (use approveToken)
|
|
23
|
-
* 2. Consumer calls ACTPKernel.linkEscrow(txId, escrowVault, escrowId)
|
|
24
|
-
* 3. Kernel internally calls IEscrowValidator.createEscrow(escrowId, requester, provider, amount)
|
|
25
|
-
* 4. Escrow pulls USDC from requester
|
|
26
|
-
*
|
|
27
|
-
* Reference: AIP-3 §3.2 (Escrow Linking Workflow), lines 258-336
|
|
28
|
-
*/
|
|
29
7
|
export declare class EscrowVault {
|
|
30
8
|
private readonly address;
|
|
31
9
|
private readonly signer;
|
|
32
10
|
private contract;
|
|
33
11
|
private readonly gasSettings?;
|
|
34
12
|
constructor(address: string, signer: Signer, gasSettings?: GasOptions);
|
|
35
|
-
/**
|
|
36
|
-
* Get gas buffer multiplier based on operation complexity
|
|
37
|
-
* V6 Security Enhancement: Operation-specific gas buffers
|
|
38
|
-
* Reference: SDK_SECURITY_ANALYSIS-Ultra-Think.md Lines 326-337
|
|
39
|
-
*/
|
|
40
13
|
private getGasBufferMultiplier;
|
|
41
|
-
/**
|
|
42
|
-
* Build transaction options with gas settings and estimated gas
|
|
43
|
-
* V6 Enhancement: Dynamic buffer based on operation type
|
|
44
|
-
*
|
|
45
|
-
* SECURITY FIX (NEW-C-1): Gas estimation manipulation attack protection
|
|
46
|
-
* - Enforces minimum gas floor regardless of estimate
|
|
47
|
-
* - Uses safe BigInt arithmetic with overflow detection
|
|
48
|
-
*/
|
|
49
14
|
private buildTxOptions;
|
|
50
|
-
/**
|
|
51
|
-
* Get escrow vault address
|
|
52
|
-
*/
|
|
53
15
|
getAddress(): string;
|
|
54
|
-
/**
|
|
55
|
-
* Get the underlying ethers Contract instance.
|
|
56
|
-
*
|
|
57
|
-
* SECURITY FIX (C-3): Provides public access to contract for EventMonitor
|
|
58
|
-
* instead of accessing private field via bracket notation.
|
|
59
|
-
*
|
|
60
|
-
* @returns ethers Contract instance
|
|
61
|
-
*/
|
|
62
|
-
getContract(): Contract;
|
|
63
|
-
/**
|
|
64
|
-
* Approve USDC token for escrow creation
|
|
65
|
-
*
|
|
66
|
-
* IMPORTANT: Call this BEFORE ACTPKernel.linkEscrow()
|
|
67
|
-
* The consumer must approve EscrowVault to pull USDC when linkEscrow() is called
|
|
68
|
-
*
|
|
69
|
-
* @param tokenAddress - USDC contract address
|
|
70
|
-
* @param amount - Amount to approve (in USDC wei, 6 decimals)
|
|
71
|
-
* @throws {ValidationError} If inputs are invalid
|
|
72
|
-
* @throws {TransactionRevertedError} If approval fails
|
|
73
|
-
*
|
|
74
|
-
* @example
|
|
75
|
-
* ```typescript
|
|
76
|
-
* // Approve 100 USDC for escrow
|
|
77
|
-
* const amount = ethers.parseUnits('100', 6);
|
|
78
|
-
* await client.escrow.approveToken(BASE_SEPOLIA.contracts.usdc, amount);
|
|
79
|
-
*
|
|
80
|
-
* // Now call linkEscrow via Kernel
|
|
81
|
-
* const escrowId = ethers.id(`escrow-${Date.now()}`);
|
|
82
|
-
* await client.kernel.linkEscrow(txId, escrowVault, escrowId);
|
|
83
|
-
* ```
|
|
84
|
-
*/
|
|
85
16
|
approveToken(tokenAddress: string, amount: bigint): Promise<void>;
|
|
86
|
-
/**
|
|
87
|
-
* Get escrow details
|
|
88
|
-
*/
|
|
89
17
|
getEscrow(escrowId: string): Promise<Escrow>;
|
|
90
|
-
/**
|
|
91
|
-
* Get escrow remaining balance (amount - releasedAmount)
|
|
92
|
-
*/
|
|
93
18
|
getEscrowBalance(escrowId: string): Promise<bigint>;
|
|
94
|
-
|
|
95
|
-
* @deprecated
|
|
96
|
-
*
|
|
97
|
-
* Payouts/refunds are executed by ACTPKernel (on-chain) as part of state transitions.
|
|
98
|
-
* EscrowVault disbursement methods are `onlyKernel` and cannot be called by EOAs.
|
|
99
|
-
*
|
|
100
|
-
* Use:
|
|
101
|
-
* - `BlockchainRuntime.releaseEscrow(txId, attestationUID?)` (recommended)
|
|
102
|
-
* - or `ACTPKernel.transitionState(txId, State.SETTLED, proof)` (advanced)
|
|
103
|
-
*/
|
|
104
|
-
releaseEscrow(escrowId: string, _recipients: string[], _amounts: bigint[]): Promise<void>;
|
|
105
|
-
/**
|
|
106
|
-
* Check token balance
|
|
107
|
-
*/
|
|
19
|
+
releaseEscrow(escrowId: string, recipients: string[], amounts: bigint[]): Promise<void>;
|
|
108
20
|
getTokenBalance(tokenAddress: string, account: string): Promise<bigint>;
|
|
109
|
-
/**
|
|
110
|
-
* Check token allowance
|
|
111
|
-
*/
|
|
112
21
|
getTokenAllowance(tokenAddress: string, owner: string, spender: string): Promise<bigint>;
|
|
113
22
|
}
|
|
114
23
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EscrowVault.d.ts","sourceRoot":"","sources":["../../src/protocol/EscrowVault.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"EscrowVault.d.ts","sourceRoot":"","sources":["../../src/protocol/EscrowVault.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,MAAM,EAAE,MAAM,QAAQ,CAAC;AAG1C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAWlC,UAAU,UAAU;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAiBD,qBAAa,WAAW;IAKpB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM;IALzB,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAa;gBAGvB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EAC/B,WAAW,CAAC,EAAE,UAAU;IAW1B,OAAO,CAAC,sBAAsB;IAa9B,OAAO,CAAC,cAAc;IAoBtB,UAAU,IAAI,MAAM;IA0Bd,YAAY,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAyCjE,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAkB5C,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IASnD,aAAa,CACjB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAAE,EACpB,OAAO,EAAE,MAAM,EAAE,GAChB,OAAO,CAAC,IAAI,CAAC;IAqCV,eAAe,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAQvE,iBAAiB,CACrB,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,CAAC;CAInB"}
|