@agirails/sdk 2.6.0 → 3.0.0
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 +1 -1
- package/bin/agirails +10 -0
- package/dist/ACTPClient.d.ts +9 -4
- package/dist/ACTPClient.d.ts.map +1 -1
- package/dist/ACTPClient.js +12 -8
- package/dist/ACTPClient.js.map +1 -1
- package/dist/abi/ACTPKernel.json +87 -6
- package/dist/adapters/BaseAdapter.d.ts +3 -3
- package/dist/adapters/BaseAdapter.js +3 -3
- package/dist/adapters/BasicAdapter.d.ts +1 -1
- package/dist/adapters/BasicAdapter.js +2 -2
- package/dist/adapters/BasicAdapter.js.map +1 -1
- package/dist/adapters/StandardAdapter.d.ts +30 -8
- package/dist/adapters/StandardAdapter.d.ts.map +1 -1
- package/dist/adapters/StandardAdapter.js +34 -9
- package/dist/adapters/StandardAdapter.js.map +1 -1
- package/dist/adapters/X402Adapter.d.ts.map +1 -1
- package/dist/adapters/X402Adapter.js +14 -12
- package/dist/adapters/X402Adapter.js.map +1 -1
- package/dist/api/agirailsApp.d.ts +197 -0
- package/dist/api/agirailsApp.d.ts.map +1 -0
- package/dist/api/agirailsApp.js +175 -0
- package/dist/api/agirailsApp.js.map +1 -0
- package/dist/cli/agirails.d.ts +10 -0
- package/dist/cli/agirails.d.ts.map +1 -0
- package/dist/cli/agirails.js +187 -0
- package/dist/cli/agirails.js.map +1 -0
- package/dist/cli/commands/autopublish.d.ts +13 -0
- package/dist/cli/commands/autopublish.d.ts.map +1 -0
- package/dist/cli/commands/autopublish.js +156 -0
- package/dist/cli/commands/autopublish.js.map +1 -0
- package/dist/cli/commands/batch.js +1 -1
- package/dist/cli/commands/claim-code.d.ts +11 -0
- package/dist/cli/commands/claim-code.d.ts.map +1 -0
- package/dist/cli/commands/claim-code.js +160 -0
- package/dist/cli/commands/claim-code.js.map +1 -0
- package/dist/cli/commands/claim.d.ts +17 -0
- package/dist/cli/commands/claim.d.ts.map +1 -0
- package/dist/cli/commands/claim.js +104 -0
- package/dist/cli/commands/claim.js.map +1 -0
- package/dist/cli/commands/config.js +1 -1
- package/dist/cli/commands/config.js.map +1 -1
- package/dist/cli/commands/find.d.ts +23 -0
- package/dist/cli/commands/find.d.ts.map +1 -0
- package/dist/cli/commands/find.js +230 -0
- package/dist/cli/commands/find.js.map +1 -0
- package/dist/cli/commands/health.d.ts +16 -0
- package/dist/cli/commands/health.d.ts.map +1 -0
- package/dist/cli/commands/health.js +287 -0
- package/dist/cli/commands/health.js.map +1 -0
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +42 -13
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/negotiate.d.ts +11 -0
- package/dist/cli/commands/negotiate.d.ts.map +1 -0
- package/dist/cli/commands/negotiate.js +192 -0
- package/dist/cli/commands/negotiate.js.map +1 -0
- package/dist/cli/commands/publish.d.ts.map +1 -1
- package/dist/cli/commands/publish.js +310 -17
- package/dist/cli/commands/publish.js.map +1 -1
- package/dist/cli/commands/pull.d.ts +7 -3
- package/dist/cli/commands/pull.d.ts.map +1 -1
- package/dist/cli/commands/pull.js +105 -13
- package/dist/cli/commands/pull.js.map +1 -1
- package/dist/cli/commands/receipt.d.ts +31 -0
- package/dist/cli/commands/receipt.d.ts.map +1 -0
- package/dist/cli/commands/receipt.js +92 -0
- package/dist/cli/commands/receipt.js.map +1 -0
- package/dist/cli/commands/test.d.ts +15 -0
- package/dist/cli/commands/test.d.ts.map +1 -0
- package/dist/cli/commands/test.js +176 -0
- package/dist/cli/commands/test.js.map +1 -0
- package/dist/cli/index.js +19 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/testjobs/index.d.ts +18 -0
- package/dist/cli/testjobs/index.d.ts.map +1 -0
- package/dist/cli/testjobs/index.js +45 -0
- package/dist/cli/testjobs/index.js.map +1 -0
- package/dist/cli/testjobs/templates/automation.d.ts +3 -0
- package/dist/cli/testjobs/templates/automation.d.ts.map +1 -0
- package/dist/cli/testjobs/templates/automation.js +32 -0
- package/dist/cli/testjobs/templates/automation.js.map +1 -0
- package/dist/cli/testjobs/templates/code-review.d.ts +3 -0
- package/dist/cli/testjobs/templates/code-review.d.ts.map +1 -0
- package/dist/cli/testjobs/templates/code-review.js +27 -0
- package/dist/cli/testjobs/templates/code-review.js.map +1 -0
- package/dist/cli/testjobs/templates/content-writing.d.ts +3 -0
- package/dist/cli/testjobs/templates/content-writing.d.ts.map +1 -0
- package/dist/cli/testjobs/templates/content-writing.js +20 -0
- package/dist/cli/testjobs/templates/content-writing.js.map +1 -0
- package/dist/cli/testjobs/templates/data-analysis.d.ts +3 -0
- package/dist/cli/testjobs/templates/data-analysis.d.ts.map +1 -0
- package/dist/cli/testjobs/templates/data-analysis.js +34 -0
- package/dist/cli/testjobs/templates/data-analysis.js.map +1 -0
- package/dist/cli/testjobs/templates/generic.d.ts +3 -0
- package/dist/cli/testjobs/templates/generic.d.ts.map +1 -0
- package/dist/cli/testjobs/templates/generic.js +17 -0
- package/dist/cli/testjobs/templates/generic.js.map +1 -0
- package/dist/cli/testjobs/templates/security-audit.d.ts +3 -0
- package/dist/cli/testjobs/templates/security-audit.d.ts.map +1 -0
- package/dist/cli/testjobs/templates/security-audit.js +30 -0
- package/dist/cli/testjobs/templates/security-audit.js.map +1 -0
- package/dist/cli/testjobs/templates/testing.d.ts +3 -0
- package/dist/cli/testjobs/templates/testing.d.ts.map +1 -0
- package/dist/cli/testjobs/templates/testing.js +29 -0
- package/dist/cli/testjobs/templates/testing.js.map +1 -0
- package/dist/cli/testjobs/templates/translation.d.ts +3 -0
- package/dist/cli/testjobs/templates/translation.d.ts.map +1 -0
- package/dist/cli/testjobs/templates/translation.js +16 -0
- package/dist/cli/testjobs/templates/translation.js.map +1 -0
- package/dist/cli/testjobs/types.d.ts +16 -0
- package/dist/cli/testjobs/types.d.ts.map +1 -0
- package/dist/cli/testjobs/types.js +8 -0
- package/dist/cli/testjobs/types.js.map +1 -0
- package/dist/cli/utils/client.js +1 -1
- package/dist/cli/utils/client.js.map +1 -1
- package/dist/cli/utils/config.d.ts +12 -0
- package/dist/cli/utils/config.d.ts.map +1 -1
- package/dist/cli/utils/config.js +29 -2
- package/dist/cli/utils/config.js.map +1 -1
- package/dist/config/agirailsmd.d.ts +1 -1
- package/dist/config/agirailsmd.d.ts.map +1 -1
- package/dist/config/agirailsmd.js +3 -0
- package/dist/config/agirailsmd.js.map +1 -1
- package/dist/config/agirailsmdV4.d.ts +82 -0
- package/dist/config/agirailsmdV4.d.ts.map +1 -0
- package/dist/config/agirailsmdV4.js +254 -0
- package/dist/config/agirailsmdV4.js.map +1 -0
- package/dist/config/defaults.d.ts +50 -0
- package/dist/config/defaults.d.ts.map +1 -0
- package/dist/config/defaults.js +77 -0
- package/dist/config/defaults.js.map +1 -0
- package/dist/config/networks.d.ts +1 -0
- package/dist/config/networks.d.ts.map +1 -1
- package/dist/config/networks.js +16 -13
- package/dist/config/networks.js.map +1 -1
- package/dist/config/publishPipeline.d.ts.map +1 -1
- package/dist/config/publishPipeline.js +4 -0
- package/dist/config/publishPipeline.js.map +1 -1
- package/dist/config/slugUtils.d.ts +28 -0
- package/dist/config/slugUtils.d.ts.map +1 -0
- package/dist/config/slugUtils.js +51 -0
- package/dist/config/slugUtils.js.map +1 -0
- package/dist/level0/ServiceDirectory.d.ts +6 -6
- package/dist/level0/ServiceDirectory.js +11 -11
- package/dist/level0/ServiceDirectory.js.map +1 -1
- package/dist/level1/Agent.d.ts +10 -10
- package/dist/level1/Agent.d.ts.map +1 -1
- package/dist/level1/Agent.js +45 -29
- package/dist/level1/Agent.js.map +1 -1
- package/dist/level1/pricing/PriceCalculator.js +2 -2
- package/dist/level1/pricing/PriceCalculator.js.map +1 -1
- package/dist/negotiation/BuyerOrchestrator.d.ts +108 -0
- package/dist/negotiation/BuyerOrchestrator.d.ts.map +1 -0
- package/dist/negotiation/BuyerOrchestrator.js +377 -0
- package/dist/negotiation/BuyerOrchestrator.js.map +1 -0
- package/dist/negotiation/DecisionEngine.d.ts +44 -0
- package/dist/negotiation/DecisionEngine.d.ts.map +1 -0
- package/dist/negotiation/DecisionEngine.js +116 -0
- package/dist/negotiation/DecisionEngine.js.map +1 -0
- package/dist/negotiation/PolicyEngine.d.ts +126 -0
- package/dist/negotiation/PolicyEngine.d.ts.map +1 -0
- package/dist/negotiation/PolicyEngine.js +265 -0
- package/dist/negotiation/PolicyEngine.js.map +1 -0
- package/dist/negotiation/SessionStore.d.ts +57 -0
- package/dist/negotiation/SessionStore.d.ts.map +1 -0
- package/dist/negotiation/SessionStore.js +179 -0
- package/dist/negotiation/SessionStore.js.map +1 -0
- package/dist/negotiation/index.d.ts +9 -0
- package/dist/negotiation/index.d.ts.map +1 -0
- package/dist/negotiation/index.js +12 -0
- package/dist/negotiation/index.js.map +1 -0
- package/dist/protocol/ACTPKernel.d.ts +32 -4
- package/dist/protocol/ACTPKernel.d.ts.map +1 -1
- package/dist/protocol/ACTPKernel.js +70 -16
- package/dist/protocol/ACTPKernel.js.map +1 -1
- package/dist/protocol/AgentRegistry.js +2 -2
- package/dist/protocol/AgentRegistry.js.map +1 -1
- package/dist/protocol/DIDResolver.js +2 -2
- package/dist/protocol/DIDResolver.js.map +1 -1
- package/dist/protocol/EASHelper.d.ts +2 -2
- package/dist/protocol/EASHelper.js +5 -5
- package/dist/protocol/EASHelper.js.map +1 -1
- package/dist/protocol/EscrowVault.d.ts +2 -2
- package/dist/protocol/EscrowVault.js +4 -4
- package/dist/protocol/EscrowVault.js.map +1 -1
- package/dist/protocol/EventMonitor.d.ts +4 -4
- package/dist/protocol/EventMonitor.js +5 -5
- package/dist/protocol/EventMonitor.js.map +1 -1
- package/dist/protocol/MessageSigner.d.ts +5 -5
- package/dist/protocol/MessageSigner.js +8 -8
- package/dist/protocol/MessageSigner.js.map +1 -1
- package/dist/protocol/ProofGenerator.d.ts +4 -4
- package/dist/protocol/ProofGenerator.js +6 -6
- package/dist/protocol/ProofGenerator.js.map +1 -1
- package/dist/runtime/BlockchainRuntime.d.ts +24 -14
- package/dist/runtime/BlockchainRuntime.d.ts.map +1 -1
- package/dist/runtime/BlockchainRuntime.js +60 -45
- package/dist/runtime/BlockchainRuntime.js.map +1 -1
- package/dist/runtime/IACTPRuntime.d.ts +12 -1
- package/dist/runtime/IACTPRuntime.d.ts.map +1 -1
- package/dist/runtime/MockRuntime.d.ts +22 -9
- package/dist/runtime/MockRuntime.d.ts.map +1 -1
- package/dist/runtime/MockRuntime.js +76 -24
- package/dist/runtime/MockRuntime.js.map +1 -1
- package/dist/runtime/MockStateManager.js +2 -2
- package/dist/runtime/MockStateManager.js.map +1 -1
- package/dist/runtime/types/MockState.d.ts +1 -1
- package/dist/types/erc8004.d.ts +2 -2
- package/dist/types/erc8004.d.ts.map +1 -1
- package/dist/types/erc8004.js +4 -1
- package/dist/types/erc8004.js.map +1 -1
- package/dist/types/state.d.ts +1 -1
- package/dist/types/state.js +1 -1
- package/dist/types/transaction.d.ts +4 -0
- package/dist/types/transaction.d.ts.map +1 -1
- package/dist/types/x402.d.ts +17 -9
- package/dist/types/x402.d.ts.map +1 -1
- package/dist/types/x402.js +9 -9
- package/dist/types/x402.js.map +1 -1
- package/dist/utils/ErrorRecoveryGuide.d.ts +1 -1
- package/dist/utils/ErrorRecoveryGuide.js +1 -1
- package/dist/utils/Helpers.d.ts +6 -6
- package/dist/utils/Helpers.js +7 -7
- package/dist/utils/Helpers.js.map +1 -1
- package/dist/utils/IPFSClient.d.ts +7 -7
- package/dist/utils/IPFSClient.js +9 -9
- package/dist/utils/IPFSClient.js.map +1 -1
- package/dist/utils/Logger.d.ts +4 -4
- package/dist/utils/Logger.js +8 -8
- package/dist/utils/Logger.js.map +1 -1
- package/dist/utils/NonceManager.d.ts +9 -9
- package/dist/utils/NonceManager.js +19 -19
- package/dist/utils/NonceManager.js.map +1 -1
- package/dist/utils/RateLimiter.d.ts +10 -10
- package/dist/utils/RateLimiter.d.ts.map +1 -1
- package/dist/utils/RateLimiter.js +22 -22
- package/dist/utils/RateLimiter.js.map +1 -1
- package/dist/utils/ReceivedNonceTracker.d.ts +10 -10
- package/dist/utils/ReceivedNonceTracker.js +20 -20
- package/dist/utils/ReceivedNonceTracker.js.map +1 -1
- package/dist/utils/SDKLifecycle.d.ts +3 -3
- package/dist/utils/SDKLifecycle.js +7 -7
- package/dist/utils/SDKLifecycle.js.map +1 -1
- package/dist/utils/SecureNonce.d.ts +1 -1
- package/dist/utils/SecureNonce.js +1 -1
- package/dist/utils/Semaphore.d.ts +2 -2
- package/dist/utils/Semaphore.js +2 -2
- package/dist/utils/UsedAttestationTracker.d.ts +13 -13
- package/dist/utils/UsedAttestationTracker.js +20 -20
- package/dist/utils/UsedAttestationTracker.js.map +1 -1
- package/dist/utils/security.d.ts +3 -3
- package/dist/utils/security.js +4 -4
- package/dist/utils/security.js.map +1 -1
- package/dist/utils/validation.d.ts +4 -4
- package/dist/utils/validation.js +9 -9
- package/dist/utils/validation.js.map +1 -1
- package/dist/wallet/AutoWalletProvider.d.ts.map +1 -1
- package/dist/wallet/AutoWalletProvider.js +2 -1
- package/dist/wallet/AutoWalletProvider.js.map +1 -1
- package/dist/wallet/IWalletProvider.d.ts +2 -0
- package/dist/wallet/IWalletProvider.d.ts.map +1 -1
- package/dist/wallet/aa/TransactionBatcher.d.ts +22 -2
- package/dist/wallet/aa/TransactionBatcher.d.ts.map +1 -1
- package/dist/wallet/aa/TransactionBatcher.js +51 -9
- package/dist/wallet/aa/TransactionBatcher.js.map +1 -1
- package/package.json +6 -12
|
@@ -42,7 +42,7 @@ export declare class EscrowVault {
|
|
|
42
42
|
* Build transaction options with gas settings and estimated gas
|
|
43
43
|
* V6 Enhancement: Dynamic buffer based on operation type
|
|
44
44
|
*
|
|
45
|
-
*
|
|
45
|
+
*Security: Gas estimation manipulation attack protection
|
|
46
46
|
* - Enforces minimum gas floor regardless of estimate
|
|
47
47
|
* - Uses safe BigInt arithmetic with overflow detection
|
|
48
48
|
*/
|
|
@@ -54,7 +54,7 @@ export declare class EscrowVault {
|
|
|
54
54
|
/**
|
|
55
55
|
* Get the underlying ethers Contract instance.
|
|
56
56
|
*
|
|
57
|
-
*
|
|
57
|
+
*Security: Provides public access to contract for EventMonitor
|
|
58
58
|
* instead of accessing private field via bracket notation.
|
|
59
59
|
*
|
|
60
60
|
* @returns ethers Contract instance
|
|
@@ -50,17 +50,17 @@ class EscrowVault {
|
|
|
50
50
|
* Build transaction options with gas settings and estimated gas
|
|
51
51
|
* V6 Enhancement: Dynamic buffer based on operation type
|
|
52
52
|
*
|
|
53
|
-
*
|
|
53
|
+
*Security: Gas estimation manipulation attack protection
|
|
54
54
|
* - Enforces minimum gas floor regardless of estimate
|
|
55
55
|
* - Uses safe BigInt arithmetic with overflow detection
|
|
56
56
|
*/
|
|
57
57
|
buildTxOptions(estimatedGas, operation = 'default') {
|
|
58
|
-
//
|
|
58
|
+
// Security: Minimum gas floor to prevent manipulation
|
|
59
59
|
// Malicious contracts could return artificially low gas estimates
|
|
60
60
|
const MIN_GAS_FLOOR = 100000n;
|
|
61
61
|
const safeEstimate = estimatedGas > MIN_GAS_FLOOR ? estimatedGas : MIN_GAS_FLOOR;
|
|
62
62
|
const bufferMultiplier = this.getGasBufferMultiplier(operation);
|
|
63
|
-
//
|
|
63
|
+
// Security: Safe BigInt arithmetic with overflow check
|
|
64
64
|
// Use 10000 denominator to avoid floating point precision issues
|
|
65
65
|
const bufferNumerator = BigInt(Math.floor(bufferMultiplier * 10000));
|
|
66
66
|
const bufferDenominator = 10000n;
|
|
@@ -90,7 +90,7 @@ class EscrowVault {
|
|
|
90
90
|
/**
|
|
91
91
|
* Get the underlying ethers Contract instance.
|
|
92
92
|
*
|
|
93
|
-
*
|
|
93
|
+
*Security: Provides public access to contract for EventMonitor
|
|
94
94
|
* instead of accessing private field via bracket notation.
|
|
95
95
|
*
|
|
96
96
|
* @returns ethers Contract instance
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EscrowVault.js","sourceRoot":"","sources":["../../src/protocol/EscrowVault.ts"],"names":[],"mappings":";;;;;;AAAA,mCAA0C;AAC1C,+EAAqD;AACrD,mEAAyC;AAEzC,sCAAsE;AACtE,oDAI6B;AAU7B;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAa,WAAW;IAItB,YACmB,OAAe,EACf,MAAc,EAC/B,WAAwB;QAFP,YAAO,GAAP,OAAO,CAAQ;QACf,WAAM,GAAN,MAAM,CAAQ;QAG/B,IAAI,CAAC,QAAQ,GAAG,IAAI,iBAAQ,CAAC,OAAO,EAAE,0BAAc,EAAE,MAAM,CAAC,CAAC;QAC9D,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;IAED;;;;OAIG;IACK,sBAAsB,CAAC,SAAiB;QAC9C,MAAM,OAAO,GAA2B;YACtC,cAAc,EAAE,IAAI,CAAO,gCAAgC;SAC5D,CAAC;QAEF,OAAO,OAAO,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,CAAC,qCAAqC;IAC1E,CAAC;IAED;;;;;;;OAOG;IACK,cAAc,CAAC,YAAoB,EAAE,YAAoB,SAAS;QACxE,
|
|
1
|
+
{"version":3,"file":"EscrowVault.js","sourceRoot":"","sources":["../../src/protocol/EscrowVault.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,7 +17,7 @@ import { State, Transaction } from '../types';
|
|
|
17
17
|
* → Event emitted (already confirmed)
|
|
18
18
|
* → EventMonitor receives event (instant)
|
|
19
19
|
*
|
|
20
|
-
*
|
|
20
|
+
*Security: Corrected event parameter order to match ABI.
|
|
21
21
|
* Per ACTPKernel.json, TransactionCreated signature is:
|
|
22
22
|
* (bytes32 indexed transactionId, address indexed requester, address indexed provider, uint256 amount, bytes32 serviceHash)
|
|
23
23
|
*
|
|
@@ -38,7 +38,7 @@ export declare class EventMonitor {
|
|
|
38
38
|
/**
|
|
39
39
|
* Get all transactions for an address
|
|
40
40
|
*
|
|
41
|
-
*
|
|
41
|
+
*Security: Corrected filter parameter order.
|
|
42
42
|
* Per ACTPKernel.json ABI, TransactionCreated event signature is:
|
|
43
43
|
* (bytes32 indexed transactionId, address indexed requester, address indexed provider, uint256 amount, bytes32 serviceHash)
|
|
44
44
|
*
|
|
@@ -46,14 +46,14 @@ export declare class EventMonitor {
|
|
|
46
46
|
* - To filter by requester: (null, address, null)
|
|
47
47
|
* - To filter by provider: (null, null, address)
|
|
48
48
|
*
|
|
49
|
-
*
|
|
49
|
+
*Security: Use getTransaction() instead of transactions()
|
|
50
50
|
* The kernel contract exposes getTransaction(bytes32) not transactions(bytes32).
|
|
51
51
|
*/
|
|
52
52
|
getTransactionHistory(address: string, role?: 'requester' | 'provider'): Promise<Transaction[]>;
|
|
53
53
|
/**
|
|
54
54
|
* Subscribe to transaction creation events
|
|
55
55
|
*
|
|
56
|
-
*
|
|
56
|
+
*Security: Corrected event parameter order.
|
|
57
57
|
* Per ACTPKernel.json ABI:
|
|
58
58
|
* TransactionCreated(bytes32 indexed transactionId, address indexed requester, address indexed provider, uint256 amount, bytes32 serviceHash)
|
|
59
59
|
*/
|
|
@@ -19,7 +19,7 @@ const types_1 = require("../types");
|
|
|
19
19
|
* → Event emitted (already confirmed)
|
|
20
20
|
* → EventMonitor receives event (instant)
|
|
21
21
|
*
|
|
22
|
-
*
|
|
22
|
+
*Security: Corrected event parameter order to match ABI.
|
|
23
23
|
* Per ACTPKernel.json, TransactionCreated signature is:
|
|
24
24
|
* (bytes32 indexed transactionId, address indexed requester, address indexed provider, uint256 amount, bytes32 serviceHash)
|
|
25
25
|
*
|
|
@@ -65,7 +65,7 @@ class EventMonitor {
|
|
|
65
65
|
/**
|
|
66
66
|
* Get all transactions for an address
|
|
67
67
|
*
|
|
68
|
-
*
|
|
68
|
+
*Security: Corrected filter parameter order.
|
|
69
69
|
* Per ACTPKernel.json ABI, TransactionCreated event signature is:
|
|
70
70
|
* (bytes32 indexed transactionId, address indexed requester, address indexed provider, uint256 amount, bytes32 serviceHash)
|
|
71
71
|
*
|
|
@@ -73,7 +73,7 @@ class EventMonitor {
|
|
|
73
73
|
* - To filter by requester: (null, address, null)
|
|
74
74
|
* - To filter by provider: (null, null, address)
|
|
75
75
|
*
|
|
76
|
-
*
|
|
76
|
+
*Security: Use getTransaction() instead of transactions()
|
|
77
77
|
* The kernel contract exposes getTransaction(bytes32) not transactions(bytes32).
|
|
78
78
|
*/
|
|
79
79
|
async getTransactionHistory(address, role = 'requester') {
|
|
@@ -90,7 +90,7 @@ class EventMonitor {
|
|
|
90
90
|
throw new Error('Event does not contain args (not an EventLog)');
|
|
91
91
|
}
|
|
92
92
|
const txId = event.args?.transactionId;
|
|
93
|
-
//
|
|
93
|
+
// Security: Use getTransaction() - the actual ABI function
|
|
94
94
|
// Previous code called transactions(txId) which doesn't exist in ABI
|
|
95
95
|
const txData = await this.kernelContract.getTransaction(txId);
|
|
96
96
|
return {
|
|
@@ -116,7 +116,7 @@ class EventMonitor {
|
|
|
116
116
|
/**
|
|
117
117
|
* Subscribe to transaction creation events
|
|
118
118
|
*
|
|
119
|
-
*
|
|
119
|
+
*Security: Corrected event parameter order.
|
|
120
120
|
* Per ACTPKernel.json ABI:
|
|
121
121
|
* TransactionCreated(bytes32 indexed transactionId, address indexed requester, address indexed provider, uint256 amount, bytes32 serviceHash)
|
|
122
122
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EventMonitor.js","sourceRoot":"","sources":["../../src/protocol/EventMonitor.ts"],"names":[],"mappings":";;;AACA,oCAA8C;AAE9C;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAa,YAAY;IACvB,YACmB,cAAwB,EACzC,eAAyB;QADR,mBAAc,GAAd,cAAc,CAAU;IAExC,CAAC;IAEJ;;;OAGG;IACH,gBAAgB,CAAC,IAAY,EAAE,QAAgC;QAC7D,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAEnE,MAAM,QAAQ,GAAG,CAAC,UAAkB,EAAE,KAAa,EAAE,EAAU,EAAE,EAAE;YACjE,QAAQ,CAAC,EAAW,CAAC,CAAC;QACxB,CAAC,CAAC;QAEF,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAEzC,0BAA0B;QAC1B,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC5C,CAAC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CAChB,IAAY,EACZ,WAAkB,EAClB,YAAoB,KAAK;QAEzB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC5B,OAAO,EAAE,CAAC;gBACV,MAAM,CAAC,IAAI,KAAK,CAAC,6BAA6B,aAAK,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC;YACvE,CAAC,EAAE,SAAS,CAAC,CAAC;YAEd,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE;gBACpD,IAAI,KAAK,KAAK,WAAW,EAAE,CAAC;oBAC1B,YAAY,CAAC,KAAK,CAAC,CAAC;oBACpB,OAAO,EAAE,CAAC;oBACV,OAAO,EAAE,CAAC;gBACZ,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,qBAAqB,CACzB,OAAe,EACf,OAAiC,WAAW;QAE5C,8CAA8C;QAC9C,4HAA4H;QAC5H,+DAA+D;QAC/D,MAAM,MAAM,GACV,IAAI,KAAK,WAAW;YAClB,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,kBAAkB,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,sCAAsC;YAC5G,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,kBAAkB,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,qCAAqC;QAEhH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAE7D,OAAO,OAAO,CAAC,GAAG,CAChB,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YACzB,6CAA6C;YAC7C,IAAI,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,EAAE,CAAC;gBACvB,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;YACnE,CAAC;YACD,MAAM,IAAI,GAAI,KAAkB,CAAC,IAAI,EAAE,aAAa,CAAC;YAErD
|
|
1
|
+
{"version":3,"file":"EventMonitor.js","sourceRoot":"","sources":["../../src/protocol/EventMonitor.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,14 +15,14 @@ export declare class MessageSigner {
|
|
|
15
15
|
private readonly nonceTracker?;
|
|
16
16
|
private domain;
|
|
17
17
|
/**
|
|
18
|
-
*
|
|
18
|
+
*Security: Private constructor - MUST use MessageSigner.create() factory method
|
|
19
19
|
*
|
|
20
20
|
* This ensures EIP-712 domain is ALWAYS initialized before use (prevents race conditions).
|
|
21
21
|
* Direct construction would allow calling sign/verify without domain initialization.
|
|
22
22
|
*/
|
|
23
23
|
private constructor();
|
|
24
24
|
/**
|
|
25
|
-
*
|
|
25
|
+
*Security: Factory method to create MessageSigner with guaranteed domain initialization
|
|
26
26
|
*
|
|
27
27
|
* This factory ensures the EIP-712 domain is always properly initialized before use.
|
|
28
28
|
* Prevents the common bug of calling sign/verify without initializing domain first.
|
|
@@ -67,7 +67,7 @@ export declare class MessageSigner {
|
|
|
67
67
|
* Sign ACTP message using EIP-712 typed data
|
|
68
68
|
* Uses ECDSA (secp256k1) with domain separation per Yellow Paper §11.4.2
|
|
69
69
|
*
|
|
70
|
-
*
|
|
70
|
+
*Security: Validates nonce format and warns about sequential nonces
|
|
71
71
|
*
|
|
72
72
|
* Generic ACTPMessage format (backward compatible).
|
|
73
73
|
* For strict typed AIP messages, use signQuoteRequest/signQuoteResponse/signDeliveryProof
|
|
@@ -114,7 +114,7 @@ export declare class MessageSigner {
|
|
|
114
114
|
/**
|
|
115
115
|
* Convert DID to Ethereum address
|
|
116
116
|
*
|
|
117
|
-
*
|
|
117
|
+
*Security: Handles both DID formats:
|
|
118
118
|
* - Legacy: did:ethr:<address>
|
|
119
119
|
* - Canonical (EIP-3770): did:ethr:<chainId>:<address>
|
|
120
120
|
*
|
|
@@ -127,7 +127,7 @@ export declare class MessageSigner {
|
|
|
127
127
|
/**
|
|
128
128
|
* Convert Ethereum address to DID
|
|
129
129
|
*
|
|
130
|
-
*
|
|
130
|
+
*Security: Now generates canonical DID format
|
|
131
131
|
* with chainId when domain is initialized: did:ethr:<chainId>:<address>
|
|
132
132
|
*
|
|
133
133
|
* Falls back to legacy format if domain not initialized.
|
|
@@ -15,7 +15,7 @@ const Logger_1 = require("../utils/Logger");
|
|
|
15
15
|
*/
|
|
16
16
|
class MessageSigner {
|
|
17
17
|
/**
|
|
18
|
-
*
|
|
18
|
+
*Security: Private constructor - MUST use MessageSigner.create() factory method
|
|
19
19
|
*
|
|
20
20
|
* This ensures EIP-712 domain is ALWAYS initialized before use (prevents race conditions).
|
|
21
21
|
* Direct construction would allow calling sign/verify without domain initialization.
|
|
@@ -26,7 +26,7 @@ class MessageSigner {
|
|
|
26
26
|
this.domain = null;
|
|
27
27
|
}
|
|
28
28
|
/**
|
|
29
|
-
*
|
|
29
|
+
*Security: Factory method to create MessageSigner with guaranteed domain initialization
|
|
30
30
|
*
|
|
31
31
|
* This factory ensures the EIP-712 domain is always properly initialized before use.
|
|
32
32
|
* Prevents the common bug of calling sign/verify without initializing domain first.
|
|
@@ -96,7 +96,7 @@ class MessageSigner {
|
|
|
96
96
|
resolvedChainId = 84532;
|
|
97
97
|
}
|
|
98
98
|
}
|
|
99
|
-
//
|
|
99
|
+
// Security: Standardize domain name to 'AGIRAILS' for brand consistency
|
|
100
100
|
// Note: This change requires coordination with any existing signed messages
|
|
101
101
|
this.domain = {
|
|
102
102
|
name: 'AGIRAILS',
|
|
@@ -109,7 +109,7 @@ class MessageSigner {
|
|
|
109
109
|
* Sign ACTP message using EIP-712 typed data
|
|
110
110
|
* Uses ECDSA (secp256k1) with domain separation per Yellow Paper §11.4.2
|
|
111
111
|
*
|
|
112
|
-
*
|
|
112
|
+
*Security: Validates nonce format and warns about sequential nonces
|
|
113
113
|
*
|
|
114
114
|
* Generic ACTPMessage format (backward compatible).
|
|
115
115
|
* For strict typed AIP messages, use signQuoteRequest/signQuoteResponse/signDeliveryProof
|
|
@@ -119,14 +119,14 @@ class MessageSigner {
|
|
|
119
119
|
throw new Error('Domain not initialized. Use MessageSigner.create() factory or call initDomain() first.');
|
|
120
120
|
}
|
|
121
121
|
const { type, version, from, to, timestamp, nonce, signature: _sig, ...payload } = message;
|
|
122
|
-
//
|
|
122
|
+
// Security: Validate nonce format (must be bytes32)
|
|
123
123
|
if (!nonce || !/^0x[a-fA-F0-9]{64}$/.test(nonce)) {
|
|
124
124
|
throw new Error(`Invalid nonce format: "${nonce}". ` +
|
|
125
125
|
`Nonce MUST be a bytes32 hex string (0x + 64 hex chars). ` +
|
|
126
126
|
`Use SecureNonce.generateSecureNonce() to generate cryptographically secure nonces. ` +
|
|
127
127
|
`Never use sequential integers (1, 2, 3...) or timestamps as nonces.`);
|
|
128
128
|
}
|
|
129
|
-
//
|
|
129
|
+
// Security: Warn about sequential nonces (low entropy)
|
|
130
130
|
// Sequential nonces like 0x0000...0001, 0x0000...0002 are weak
|
|
131
131
|
// Check if nonce has low entropy (e.g., last 8 bytes are zero, or all same digits)
|
|
132
132
|
const nonceValue = BigInt(nonce);
|
|
@@ -303,7 +303,7 @@ class MessageSigner {
|
|
|
303
303
|
/**
|
|
304
304
|
* Convert DID to Ethereum address
|
|
305
305
|
*
|
|
306
|
-
*
|
|
306
|
+
*Security: Handles both DID formats:
|
|
307
307
|
* - Legacy: did:ethr:<address>
|
|
308
308
|
* - Canonical (EIP-3770): did:ethr:<chainId>:<address>
|
|
309
309
|
*
|
|
@@ -363,7 +363,7 @@ class MessageSigner {
|
|
|
363
363
|
/**
|
|
364
364
|
* Convert Ethereum address to DID
|
|
365
365
|
*
|
|
366
|
-
*
|
|
366
|
+
*Security: Now generates canonical DID format
|
|
367
367
|
* with chainId when domain is initialized: did:ethr:<chainId>:<address>
|
|
368
368
|
*
|
|
369
369
|
* Falls back to legacy format if domain not initialized.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageSigner.js","sourceRoot":"","sources":["../../src/protocol/MessageSigner.ts"],"names":[],"mappings":";;;AAAA,mCAAkD;AAElD,sCAAuD;AACvD,4CAOyB;AAEzB,4CAA4C;AAkB5C;;;;;;;GAOG;AACH,MAAa,aAAa;IAGxB;;;;;OAKG;IACH,YACmB,MAAc,EACd,YAAoC;QADpC,WAAM,GAAN,MAAM,CAAQ;QACd,iBAAY,GAAZ,YAAY,CAAwB;QAV/C,WAAM,GAAwB,IAAI,CAAC;IAWxC,CAAC;IAEJ;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,MAAM,CAAC,KAAK,CAAC,MAAM,CACjB,MAAc,EACd,aAAqB,EACrB,OAGC;QAED,MAAM,aAAa,GAAG,IAAI,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;QACvE,MAAM,aAAa,CAAC,UAAU,CAAC,aAAa,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAChE,OAAO,aAAa,CAAC;IACvB,CAAC;IAED;;;OAGG;IACH,mBAAmB;QACjB,OAAO,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC;IAC9B,CAAC;IAED;;;;OAIG;IACH,SAAS;QACP,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CACb,wFAAwF,CACzF,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,UAAU,CAAC,aAAqB,EAAE,OAAgB;QACtD,IAAI,eAAuB,CAAC;QAE5B,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,eAAe,GAAG,OAAO,CAAC;QAC5B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC;gBACH,wDAAwD;gBACxD,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;oBACzB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;oBACxD,eAAe,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;gBAC5C,CAAC;qBAAM,CAAC;oBACN,wDAAwD;oBACxD,eAAe,GAAG,KAAK,CAAC;gBAC1B,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,wDAAwD;gBACxD,eAAe,GAAG,KAAK,CAAC;YAC1B,CAAC;QACH,CAAC;QAED,
|
|
1
|
+
{"version":3,"file":"MessageSigner.js","sourceRoot":"","sources":["../../src/protocol/MessageSigner.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ import { BytesLike } from 'ethers';
|
|
|
3
3
|
import { DeliveryProof } from '../types';
|
|
4
4
|
import { DeliveryProofData } from '../types/eip712';
|
|
5
5
|
/**
|
|
6
|
-
*
|
|
6
|
+
*Security: URL validation configuration for SSRF prevention
|
|
7
7
|
*/
|
|
8
8
|
export interface URLValidationConfig {
|
|
9
9
|
/**
|
|
@@ -32,7 +32,7 @@ export interface URLValidationConfig {
|
|
|
32
32
|
* ProofGenerator - Content hashing and delivery proofs
|
|
33
33
|
* Reference: Yellow Paper §11.4.1
|
|
34
34
|
*
|
|
35
|
-
*
|
|
35
|
+
*Security: Now includes URL validation for SSRF prevention
|
|
36
36
|
*/
|
|
37
37
|
export declare class ProofGenerator {
|
|
38
38
|
private readonly urlConfig;
|
|
@@ -82,7 +82,7 @@ export declare class ProofGenerator {
|
|
|
82
82
|
/**
|
|
83
83
|
* Generate content hash from URL (for IPFS/Arweave)
|
|
84
84
|
*
|
|
85
|
-
*
|
|
85
|
+
*Security: Now includes:
|
|
86
86
|
* - Protocol validation (HTTPS only by default)
|
|
87
87
|
* - Hostname blocklist (prevents SSRF to internal services)
|
|
88
88
|
* - Size limits (prevents DoS via large responses)
|
|
@@ -94,7 +94,7 @@ export declare class ProofGenerator {
|
|
|
94
94
|
*/
|
|
95
95
|
hashFromUrl(url: string): Promise<string>;
|
|
96
96
|
/**
|
|
97
|
-
*
|
|
97
|
+
*Security: Validate URL against security rules
|
|
98
98
|
*
|
|
99
99
|
* @param url - URL to validate
|
|
100
100
|
* @throws Error if URL is not allowed
|
|
@@ -25,7 +25,7 @@ const DEFAULT_URL_CONFIG = {
|
|
|
25
25
|
* ProofGenerator - Content hashing and delivery proofs
|
|
26
26
|
* Reference: Yellow Paper §11.4.1
|
|
27
27
|
*
|
|
28
|
-
*
|
|
28
|
+
*Security: Now includes URL validation for SSRF prevention
|
|
29
29
|
*/
|
|
30
30
|
class ProofGenerator {
|
|
31
31
|
/**
|
|
@@ -114,7 +114,7 @@ class ProofGenerator {
|
|
|
114
114
|
/**
|
|
115
115
|
* Generate content hash from URL (for IPFS/Arweave)
|
|
116
116
|
*
|
|
117
|
-
*
|
|
117
|
+
*Security: Now includes:
|
|
118
118
|
* - Protocol validation (HTTPS only by default)
|
|
119
119
|
* - Hostname blocklist (prevents SSRF to internal services)
|
|
120
120
|
* - Size limits (prevents DoS via large responses)
|
|
@@ -125,7 +125,7 @@ class ProofGenerator {
|
|
|
125
125
|
* @throws Error if URL is blocked, too large, or fetch fails
|
|
126
126
|
*/
|
|
127
127
|
async hashFromUrl(url) {
|
|
128
|
-
//
|
|
128
|
+
// Security: Validate URL before fetching
|
|
129
129
|
this.validateUrl(url);
|
|
130
130
|
// In browser/Node.js environment with fetch
|
|
131
131
|
try {
|
|
@@ -142,7 +142,7 @@ class ProofGenerator {
|
|
|
142
142
|
if (!response.ok) {
|
|
143
143
|
throw new Error(`HTTP error: ${response.status} ${response.statusText}`);
|
|
144
144
|
}
|
|
145
|
-
//
|
|
145
|
+
// Security: Check Content-Length header first
|
|
146
146
|
const contentLength = response.headers.get('content-length');
|
|
147
147
|
if (contentLength) {
|
|
148
148
|
const size = parseInt(contentLength, 10);
|
|
@@ -150,7 +150,7 @@ class ProofGenerator {
|
|
|
150
150
|
throw new Error(`Content too large: ${size} bytes exceeds maximum of ${this.urlConfig.maxSize} bytes`);
|
|
151
151
|
}
|
|
152
152
|
}
|
|
153
|
-
//
|
|
153
|
+
// Security: Read response with size limit
|
|
154
154
|
const chunks = [];
|
|
155
155
|
let totalSize = 0;
|
|
156
156
|
const reader = response.body?.getReader();
|
|
@@ -186,7 +186,7 @@ class ProofGenerator {
|
|
|
186
186
|
}
|
|
187
187
|
}
|
|
188
188
|
/**
|
|
189
|
-
*
|
|
189
|
+
*Security: Validate URL against security rules
|
|
190
190
|
*
|
|
191
191
|
* @param url - URL to validate
|
|
192
192
|
* @throws Error if URL is not allowed
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProofGenerator.js","sourceRoot":"","sources":["../../src/protocol/ProofGenerator.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ProofGenerator.js","sourceRoot":"","sources":["../../src/protocol/ProofGenerator.ts"],"names":[],"mappings":"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"}
|
|
@@ -50,7 +50,7 @@ export interface BlockchainRuntimeConfig {
|
|
|
50
50
|
/** EAS (Ethereum Attestation Service) configuration for delivery proof verification */
|
|
51
51
|
easConfig?: EASConfig;
|
|
52
52
|
/**
|
|
53
|
-
*
|
|
53
|
+
*Security: Require attestation verification before escrow release
|
|
54
54
|
* When true, releaseEscrow() will require a valid EAS attestation
|
|
55
55
|
* Default: false for backward compatibility, SHOULD be true in production
|
|
56
56
|
*/
|
|
@@ -119,7 +119,7 @@ export declare class BlockchainRuntime implements IACTPRuntime {
|
|
|
119
119
|
* It initializes the MessageSigner with proper EIP-712 domain and
|
|
120
120
|
* optionally the EASHelper for attestation verification.
|
|
121
121
|
*
|
|
122
|
-
*
|
|
122
|
+
*Security: Validates that the connected network
|
|
123
123
|
* matches the expected network configuration to prevent cross-chain attacks.
|
|
124
124
|
*
|
|
125
125
|
* @example
|
|
@@ -137,17 +137,17 @@ export declare class BlockchainRuntime implements IACTPRuntime {
|
|
|
137
137
|
/**
|
|
138
138
|
* Require initialization before use
|
|
139
139
|
*
|
|
140
|
-
*
|
|
140
|
+
*Security: Enforces initialize() call before operations
|
|
141
141
|
* @throws Error if initialize() has not been called
|
|
142
142
|
*/
|
|
143
143
|
private requireInitialized;
|
|
144
144
|
/**
|
|
145
145
|
* Ensure provider connection is healthy with automatic reconnection
|
|
146
146
|
*
|
|
147
|
-
*
|
|
147
|
+
*Security: Implements exponential backoff reconnection
|
|
148
148
|
* to handle transient network failures gracefully.
|
|
149
149
|
*
|
|
150
|
-
*
|
|
150
|
+
*Security: Converted from recursive to iterative loop
|
|
151
151
|
* to prevent stack overflow on prolonged network failures.
|
|
152
152
|
*
|
|
153
153
|
* @throws Error if connection cannot be established after max attempts
|
|
@@ -156,7 +156,7 @@ export declare class BlockchainRuntime implements IACTPRuntime {
|
|
|
156
156
|
/**
|
|
157
157
|
* Get provider connection status
|
|
158
158
|
*
|
|
159
|
-
*
|
|
159
|
+
*Security: Monitoring method for connection health
|
|
160
160
|
*
|
|
161
161
|
* @returns Connection status information
|
|
162
162
|
*/
|
|
@@ -188,7 +188,7 @@ export declare class BlockchainRuntime implements IACTPRuntime {
|
|
|
188
188
|
/**
|
|
189
189
|
* Transitions a transaction to a new state
|
|
190
190
|
*
|
|
191
|
-
*
|
|
191
|
+
*Security: Added optional proof parameter for DELIVERED state.
|
|
192
192
|
* The kernel contract uses proof data for dispute window configuration and
|
|
193
193
|
* delivery verification. Without proof, default dispute window applies.
|
|
194
194
|
*
|
|
@@ -198,11 +198,21 @@ export declare class BlockchainRuntime implements IACTPRuntime {
|
|
|
198
198
|
*/
|
|
199
199
|
transitionState(txId: string, newState: TransactionState, proof?: string): Promise<void>;
|
|
200
200
|
/**
|
|
201
|
-
*
|
|
201
|
+
* Accept a provider's quote, updating the transaction amount.
|
|
202
|
+
*
|
|
203
|
+
* Calls the dedicated acceptQuote() function on ACTPKernel (not transitionState).
|
|
204
|
+
* Does NOT change state (stays QUOTED). After acceptQuote, call linkEscrow.
|
|
202
205
|
*
|
|
203
206
|
* @param txId - Transaction ID
|
|
204
|
-
* @
|
|
207
|
+
* @param newAmount - New amount in USDC wei
|
|
205
208
|
*/
|
|
209
|
+
acceptQuote(txId: string, newAmount: string): Promise<void>;
|
|
210
|
+
/**
|
|
211
|
+
* Gets a transaction by ID
|
|
212
|
+
*
|
|
213
|
+
* @param txId - Transaction ID
|
|
214
|
+
* @returns Promise resolving to transaction or null if not found
|
|
215
|
+
*/
|
|
206
216
|
getTransaction(txId: string): Promise<MockTransaction | null>;
|
|
207
217
|
/**
|
|
208
218
|
* Gets all transactions
|
|
@@ -213,12 +223,12 @@ export declare class BlockchainRuntime implements IACTPRuntime {
|
|
|
213
223
|
/**
|
|
214
224
|
* Releases escrow funds to provider by settling the transaction
|
|
215
225
|
*
|
|
216
|
-
*
|
|
226
|
+
*Security: This method now validates:
|
|
217
227
|
* 1. Transaction state is DELIVERED
|
|
218
228
|
* 2. Dispute window has elapsed
|
|
219
229
|
* 3. EAS attestation is valid (if requireAttestation is true)
|
|
220
230
|
*
|
|
221
|
-
*
|
|
231
|
+
*Security: Uses transitionState(SETTLED) instead of
|
|
222
232
|
* direct releaseEscrow() call. Per ACTPKernel.sol, settlement via state transition
|
|
223
233
|
* automatically handles escrow release through _releaseEscrow() internal call.
|
|
224
234
|
* This ensures proper state machine progression and event emission.
|
|
@@ -310,7 +320,7 @@ export declare class BlockchainRuntime implements IACTPRuntime {
|
|
|
310
320
|
/**
|
|
311
321
|
* Get nonce tracker instance (for monitoring/debugging)
|
|
312
322
|
*
|
|
313
|
-
*
|
|
323
|
+
*Security: Exposed for monitoring nonce replay protection
|
|
314
324
|
*/
|
|
315
325
|
getNonceTracker(): IReceivedNonceTracker;
|
|
316
326
|
/**
|
|
@@ -320,7 +330,7 @@ export declare class BlockchainRuntime implements IACTPRuntime {
|
|
|
320
330
|
/**
|
|
321
331
|
* Validate and normalize service hash for on-chain storage
|
|
322
332
|
*
|
|
323
|
-
*
|
|
333
|
+
*Security: ACTPKernel expects bytes32 serviceHash.
|
|
324
334
|
* This method validates format and hashes raw strings if needed.
|
|
325
335
|
*
|
|
326
336
|
* @param serviceDescription - Service hash or description string
|
|
@@ -330,7 +340,7 @@ export declare class BlockchainRuntime implements IACTPRuntime {
|
|
|
330
340
|
/**
|
|
331
341
|
* Estimate gas for createTransaction operation
|
|
332
342
|
*
|
|
333
|
-
*
|
|
343
|
+
*Security: Pre-transaction gas estimation helps:
|
|
334
344
|
* - Prevent failed transactions due to insufficient gas
|
|
335
345
|
* - Allow users to make informed decisions about costs
|
|
336
346
|
* - Catch potential issues before spending gas
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BlockchainRuntime.d.ts","sourceRoot":"","sources":["../../src/runtime/BlockchainRuntime.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"BlockchainRuntime.d.ts","sourceRoot":"","sources":["../../src/runtime/BlockchainRuntime.ts"],"names":[],"mappings":"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"}
|