@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
|
@@ -1,29 +1,256 @@
|
|
|
1
|
-
import { Signer, BytesLike } from 'ethers';
|
|
1
|
+
import { Contract, Signer, BytesLike } from 'ethers';
|
|
2
2
|
import { State, Transaction, CreateTransactionParams, DisputeResolution, EconomicParams } from '../types';
|
|
3
|
+
/**
|
|
4
|
+
* Gas options for transactions
|
|
5
|
+
*/
|
|
3
6
|
interface GasOptions {
|
|
4
7
|
maxFeePerGas?: bigint;
|
|
5
8
|
maxPriorityFeePerGas?: bigint;
|
|
6
9
|
}
|
|
10
|
+
/**
|
|
11
|
+
* ACTPKernel - Smart contract wrapper
|
|
12
|
+
* Reference: Yellow Paper §3 (ACTP Kernel Specification)
|
|
13
|
+
*/
|
|
7
14
|
export declare class ACTPKernel {
|
|
8
15
|
private readonly address;
|
|
9
16
|
private contract;
|
|
10
17
|
private readonly gasSettings?;
|
|
11
18
|
constructor(address: string, signer: Signer, gasSettings?: GasOptions);
|
|
19
|
+
/**
|
|
20
|
+
* Get kernel contract address
|
|
21
|
+
*/
|
|
12
22
|
getAddress(): string;
|
|
23
|
+
/**
|
|
24
|
+
* Get the underlying ethers Contract instance.
|
|
25
|
+
*
|
|
26
|
+
* SECURITY FIX (C-3): Provides public access to contract for EventMonitor
|
|
27
|
+
* instead of accessing private field via bracket notation.
|
|
28
|
+
*
|
|
29
|
+
* @returns ethers Contract instance
|
|
30
|
+
*/
|
|
31
|
+
getContract(): Contract;
|
|
32
|
+
/**
|
|
33
|
+
* Get gas buffer multiplier based on operation complexity
|
|
34
|
+
* V6 Security Enhancement: Operation-specific gas buffers
|
|
35
|
+
* Reference: SDK_SECURITY_ANALYSIS-Ultra-Think.md Lines 326-337
|
|
36
|
+
*/
|
|
13
37
|
private getGasBufferMultiplier;
|
|
38
|
+
/**
|
|
39
|
+
* Build transaction options with gas settings and estimated gas
|
|
40
|
+
* V6 Enhancement: Dynamic buffer based on operation type
|
|
41
|
+
*
|
|
42
|
+
* SECURITY FIX (C-3): Gas estimation manipulation attack protection
|
|
43
|
+
* - Enforces operation-specific minimum gas floors (not global 100k)
|
|
44
|
+
* - Validates gas limit doesn't exceed block gas limit (DoS prevention)
|
|
45
|
+
* - Uses safe BigInt arithmetic with overflow detection
|
|
46
|
+
* - Prevents floating-point arithmetic (uses BPS - basis points)
|
|
47
|
+
*/
|
|
14
48
|
private buildTxOptions;
|
|
49
|
+
/**
|
|
50
|
+
* Create a new transaction
|
|
51
|
+
* Reference: Yellow Paper §3.4.1
|
|
52
|
+
*
|
|
53
|
+
* Contract signature: createTransaction(provider, requester, amount, deadline, disputeWindow, serviceHash)
|
|
54
|
+
* Returns: bytes32 transactionId (generated by contract)
|
|
55
|
+
*/
|
|
15
56
|
createTransaction(params: CreateTransactionParams): Promise<string>;
|
|
57
|
+
/**
|
|
58
|
+
* Transition transaction state
|
|
59
|
+
* Reference: Yellow Paper §3.2
|
|
60
|
+
*/
|
|
16
61
|
transitionState(txId: string, newState: State, proof?: BytesLike): Promise<void>;
|
|
62
|
+
/**
|
|
63
|
+
* Submit quote for transaction (AIP-2)
|
|
64
|
+
* Reference: AIP-2 §4.1 (Provider workflow)
|
|
65
|
+
*
|
|
66
|
+
* Transitions transaction from INITIATED → QUOTED with quote hash stored on-chain
|
|
67
|
+
*
|
|
68
|
+
* @param txId - Transaction ID (bytes32)
|
|
69
|
+
* @param quoteHash - Keccak256 hash of canonical JSON quote message
|
|
70
|
+
*/
|
|
17
71
|
submitQuote(txId: string, quoteHash: string): Promise<void>;
|
|
72
|
+
/**
|
|
73
|
+
* Link escrow to transaction
|
|
74
|
+
*
|
|
75
|
+
* CRITICAL: This is the ONLY way to create escrow per AIP-3 spec.
|
|
76
|
+
* SDK should NOT call EscrowVault.createEscrow() directly (onlyKernel modifier).
|
|
77
|
+
*
|
|
78
|
+
* What happens internally:
|
|
79
|
+
* 1. ACTPKernel validates transaction state, permissions, deadline
|
|
80
|
+
* 2. Kernel calls IEscrowValidator(escrowContract).createEscrow(...)
|
|
81
|
+
* 3. EscrowVault pulls USDC from consumer (must approve USDC first!)
|
|
82
|
+
* 4. Events emitted: EscrowLinked
|
|
83
|
+
* 5. **State transition behavior varies** (see below)
|
|
84
|
+
*
|
|
85
|
+
* STATE TRANSITION BEHAVIOR:
|
|
86
|
+
* - **AIP-3 Spec (Source Code)**: Should auto-transition INITIATED/QUOTED → COMMITTED
|
|
87
|
+
* - **Deployed Contract**: Behavior is INCONSISTENT - sometimes auto-transitions, sometimes doesn't
|
|
88
|
+
* - **Recommended Practice**: Always check state after linkEscrow() and manually transition if needed
|
|
89
|
+
*
|
|
90
|
+
* ```typescript
|
|
91
|
+
* await client.kernel.linkEscrow(txId, escrowVault, escrowId);
|
|
92
|
+
* let tx = await client.kernel.getTransaction(txId);
|
|
93
|
+
* if (tx.state !== State.COMMITTED) {
|
|
94
|
+
* await client.kernel.transitionState(txId, State.COMMITTED);
|
|
95
|
+
* }
|
|
96
|
+
* ```
|
|
97
|
+
*
|
|
98
|
+
* Prerequisites:
|
|
99
|
+
* - Transaction in INITIATED or QUOTED state
|
|
100
|
+
* - Consumer has approved USDC to EscrowVault address
|
|
101
|
+
* (use EscrowVault.approveToken() before calling this)
|
|
102
|
+
*
|
|
103
|
+
* @param txId - Transaction ID (bytes32)
|
|
104
|
+
* @param escrowContract - EscrowVault contract address
|
|
105
|
+
* @param escrowId - Unique escrow identifier (bytes32, consumer-generated)
|
|
106
|
+
* @throws {ValidationError} If inputs invalid
|
|
107
|
+
* @throws {TransactionRevertedError} If state invalid, deadline passed, or insufficient USDC
|
|
108
|
+
*
|
|
109
|
+
* @example
|
|
110
|
+
* ```typescript
|
|
111
|
+
* // Step 1: Approve USDC to EscrowVault (NOT to Kernel!)
|
|
112
|
+
* await client.escrow.approveToken(BASE_SEPOLIA.contracts.usdc, amount);
|
|
113
|
+
*
|
|
114
|
+
* // Step 2: Generate unique escrow ID
|
|
115
|
+
* const escrowId = ethers.id(`escrow-${Date.now()}`);
|
|
116
|
+
*
|
|
117
|
+
* // Step 3: Link escrow (creates escrow + auto-transitions to COMMITTED)
|
|
118
|
+
* await client.kernel.linkEscrow(txId, escrowVaultAddress, escrowId);
|
|
119
|
+
*
|
|
120
|
+
* // Step 4: Verify state is COMMITTED (auto-transitioned, no manual call needed)
|
|
121
|
+
* const tx = await client.kernel.getTransaction(txId);
|
|
122
|
+
* expect(tx.state).to.equal(State.COMMITTED);
|
|
123
|
+
* ```
|
|
124
|
+
*
|
|
125
|
+
* Reference: Yellow Paper §3.4.2, AIP-3 §3.2 (ACTPKernel.sol lines 244-276)
|
|
126
|
+
*/
|
|
18
127
|
linkEscrow(txId: string, escrowContract: string, escrowId: string): Promise<void>;
|
|
19
|
-
|
|
128
|
+
/**
|
|
129
|
+
* Release milestone payment
|
|
130
|
+
*
|
|
131
|
+
* SECURITY FIX (CRITICAL-2): Contract ABI has only 2 params (txId, amount), not 3.
|
|
132
|
+
* The milestoneId is NOT part of the current ACTPKernel V1 contract.
|
|
133
|
+
* Per ABI: releaseMilestone(bytes32 transactionId, uint256 amount)
|
|
134
|
+
*
|
|
135
|
+
* @param txId - Transaction ID (bytes32)
|
|
136
|
+
* @param amount - Amount to release (uint256)
|
|
137
|
+
* @deprecated milestoneId parameter - removed as contract doesn't support it
|
|
138
|
+
*/
|
|
139
|
+
releaseMilestone(txId: string, amount: bigint): Promise<void>;
|
|
140
|
+
/**
|
|
141
|
+
* Release full escrow (settle transaction)
|
|
142
|
+
*
|
|
143
|
+
* ⚠️ CRITICAL SECURITY WARNING (C-2): Attestation UID Validation Bypass
|
|
144
|
+
*
|
|
145
|
+
* **DO NOT call this method directly from your application code!**
|
|
146
|
+
*
|
|
147
|
+
* ACTPKernel V1 contract accepts any attestationUID without validation.
|
|
148
|
+
* A malicious provider can:
|
|
149
|
+
* - Submit an attestation from a different transaction
|
|
150
|
+
* - Re-use an old attestation (replay attack)
|
|
151
|
+
* - Submit a forged attestation with fake delivery proof
|
|
152
|
+
*
|
|
153
|
+
* **REQUIRED: Use secure wrapper methods instead:**
|
|
154
|
+
*
|
|
155
|
+
* 1. **BeginnerAdapter.completePayment()** (recommended for most users)
|
|
156
|
+
* - Automatically verifies attestation before release
|
|
157
|
+
* - Validates attestation belongs to this transaction
|
|
158
|
+
* - Checks attestation hasn't been used before
|
|
159
|
+
* - Handles all state transitions
|
|
160
|
+
*
|
|
161
|
+
* 2. **IntermediateAdapter.releaseEscrow()** (for more control)
|
|
162
|
+
* - Explicitly requires attestation verification
|
|
163
|
+
* - Throws error if attestation invalid or missing
|
|
164
|
+
* - Allows custom verification logic
|
|
165
|
+
*
|
|
166
|
+
* 3. **Manual verification** (advanced users only):
|
|
167
|
+
* ```typescript
|
|
168
|
+
* // Step 1: Get transaction details
|
|
169
|
+
* const tx = await kernel.getTransaction(txId);
|
|
170
|
+
*
|
|
171
|
+
* // Step 2: Verify attestation if EAS is configured
|
|
172
|
+
* if (easHelper && tx.attestationUID && tx.attestationUID !== '0x0...0') {
|
|
173
|
+
* const isValid = await easHelper.verifyDeliveryAttestation(
|
|
174
|
+
* tx.attestationUID,
|
|
175
|
+
* tx.requester
|
|
176
|
+
* );
|
|
177
|
+
* if (!isValid) {
|
|
178
|
+
* throw new Error('Invalid or fraudulent delivery attestation');
|
|
179
|
+
* }
|
|
180
|
+
* }
|
|
181
|
+
*
|
|
182
|
+
* // Step 3: Only now is it safe to release
|
|
183
|
+
* await kernel.releaseEscrow(txId);
|
|
184
|
+
* ```
|
|
185
|
+
*
|
|
186
|
+
* **Why this matters:**
|
|
187
|
+
* - Without verification, you risk paying for work never delivered
|
|
188
|
+
* - Provider can steal funds by re-using attestations from other transactions
|
|
189
|
+
* - No on-chain enforcement (contract V1 limitation, fixed in V2)
|
|
190
|
+
*
|
|
191
|
+
* **For testnet/mainnet deployments:**
|
|
192
|
+
* - MUST configure easConfig in ACTPClient
|
|
193
|
+
* - MUST use wrapper methods (Beginner/Intermediate adapters)
|
|
194
|
+
* - NEVER call this method directly unless attestation verified
|
|
195
|
+
*
|
|
196
|
+
* @param txId - Transaction ID to settle
|
|
197
|
+
* @throws {ValidationError} If txId is invalid
|
|
198
|
+
* @throws {TransactionRevertedError} If contract reverts
|
|
199
|
+
*
|
|
200
|
+
* @see {@link BeginnerAdapter.completePayment} Recommended method with built-in verification
|
|
201
|
+
* @see {@link IntermediateAdapter.releaseEscrow} Explicit verification method
|
|
202
|
+
* @see {@link EASHelper.verifyDeliveryAttestation} Manual verification helper
|
|
203
|
+
*/
|
|
20
204
|
releaseEscrow(txId: string): Promise<void>;
|
|
205
|
+
/**
|
|
206
|
+
* Get transaction by ID
|
|
207
|
+
*/
|
|
21
208
|
getTransaction(txId: string): Promise<Transaction>;
|
|
209
|
+
/**
|
|
210
|
+
* Get economic parameters (fee structure)
|
|
211
|
+
*
|
|
212
|
+
* SECURITY FIX (CRITICAL-4): Contract doesn't have getEconomicParams() function.
|
|
213
|
+
* Must call individual getters: platformFeeBps(), requesterPenaltyBps(), feeRecipient()
|
|
214
|
+
* Per ACTPKernel.json ABI lines 576-586, 619-630, 351-361
|
|
215
|
+
*/
|
|
22
216
|
getEconomicParams(): Promise<EconomicParams>;
|
|
217
|
+
/**
|
|
218
|
+
* Estimate gas for transaction creation
|
|
219
|
+
*/
|
|
23
220
|
estimateCreateTransaction(params: CreateTransactionParams): Promise<bigint>;
|
|
221
|
+
/**
|
|
222
|
+
* Raise dispute on delivered transaction
|
|
223
|
+
* Reference: Yellow Paper §3.4 (Dispute Management)
|
|
224
|
+
*/
|
|
24
225
|
raiseDispute(txId: string, reason: string, evidence: string): Promise<void>;
|
|
226
|
+
/**
|
|
227
|
+
* Resolve/settle dispute with payment split
|
|
228
|
+
* Reference: Yellow Paper §3.4
|
|
229
|
+
*
|
|
230
|
+
* Disputes are settled via transitionState(SETTLED, proof) per §3.2
|
|
231
|
+
* The kernel contract decodes the proof and handles escrow disbursement
|
|
232
|
+
*/
|
|
25
233
|
resolveDispute(txId: string, resolution: DisputeResolution): Promise<void>;
|
|
234
|
+
/**
|
|
235
|
+
* Settle disputed transaction (alias for resolveDispute)
|
|
236
|
+
*/
|
|
26
237
|
settleDispute(txId: string, resolution: DisputeResolution): Promise<void>;
|
|
238
|
+
/**
|
|
239
|
+
* Anchor an EAS attestation UID to a transaction (delivery proof)
|
|
240
|
+
* Reference: AIP-4 (Delivery Proof and EAS Attestation Standard)
|
|
241
|
+
*
|
|
242
|
+
* @param txId - Transaction ID
|
|
243
|
+
* @param attestationUID - EAS attestation UID from provider
|
|
244
|
+
* @throws {ValidationError} If inputs are invalid
|
|
245
|
+
* @throws {TransactionRevertedError} If contract reverts
|
|
246
|
+
*
|
|
247
|
+
* @example
|
|
248
|
+
* ```typescript
|
|
249
|
+
* const easHelper = new EASHelper(signer, easConfig);
|
|
250
|
+
* const attestation = await easHelper.attestDeliveryProof(proof, recipient);
|
|
251
|
+
* await kernel.anchorAttestation(txId, attestation.uid);
|
|
252
|
+
* ```
|
|
253
|
+
*/
|
|
27
254
|
anchorAttestation(txId: string, attestationUID: string): Promise<void>;
|
|
28
255
|
}
|
|
29
256
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ACTPKernel.d.ts","sourceRoot":"","sources":["../../src/protocol/ACTPKernel.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"ACTPKernel.d.ts","sourceRoot":"","sources":["../../src/protocol/ACTPKernel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAoB,MAAM,QAAQ,CAAC;AAEvE,OAAO,EACL,KAAK,EAEL,WAAW,EACX,uBAAuB,EACvB,iBAAiB,EACjB,cAAc,EACf,MAAM,UAAU,CAAC;AAelB;;GAEG;AACH,UAAU,UAAU;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED;;;GAGG;AACH,qBAAa,UAAU;IAKnB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAJ1B,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAa;gBAGvB,OAAO,EAAE,MAAM,EAChC,MAAM,EAAE,MAAM,EACd,WAAW,CAAC,EAAE,UAAU;IAM1B;;OAEG;IACH,UAAU,IAAI,MAAM;IAIpB;;;;;;;OAOG;IACH,WAAW,IAAI,QAAQ;IAIvB;;;;OAIG;IACH,OAAO,CAAC,sBAAsB;IAc9B;;;;;;;;;OASG;IACH,OAAO,CAAC,cAAc;IA8DtB;;;;;;OAMG;IACG,iBAAiB,CAAC,MAAM,EAAE,uBAAuB,GAAG,OAAO,CAAC,MAAM,CAAC;IAkFzE;;;OAGG;IACG,eAAe,CACnB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,KAAK,EACf,KAAK,GAAE,SAAgB,GACtB,OAAO,CAAC,IAAI,CAAC;IA6BhB;;;;;;;;OAQG;IACG,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA8BjE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAsDG;IACG,UAAU,CACd,IAAI,EAAE,MAAM,EACZ,cAAc,EAAE,MAAM,EACtB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC;IAuBhB;;;;;;;;;;OAUG;IACG,gBAAgB,CACpB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC;IAsBhB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+DG;IACG,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBhD;;OAEG;IACG,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IA6CxD;;;;;;OAMG;IACG,iBAAiB,IAAI,OAAO,CAAC,cAAc,CAAC;IAmBlD;;OAEG;IACG,yBAAyB,CAAC,MAAM,EAAE,uBAAuB,GAAG,OAAO,CAAC,MAAM,CAAC;IAejF;;;OAGG;IACG,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAoCjF;;;;;;OAMG;IACG,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAyDhF;;OAEG;IACG,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/E;;;;;;;;;;;;;;;OAeG;IACG,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CA+B7E"}
|