@agirails/sdk 3.1.0 → 3.3.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/LICENSE +1 -1
- package/README.md +12 -14
- package/dist/ACTPClient.d.ts +8 -11
- package/dist/ACTPClient.d.ts.map +1 -1
- package/dist/ACTPClient.js +79 -20
- package/dist/ACTPClient.js.map +1 -1
- package/dist/__tests__/helpers/mockX402Server.d.ts +67 -0
- package/dist/__tests__/helpers/mockX402Server.d.ts.map +1 -0
- package/dist/__tests__/helpers/mockX402Server.js +121 -0
- package/dist/__tests__/helpers/mockX402Server.js.map +1 -0
- package/dist/adapters/BaseAdapter.d.ts +7 -1
- package/dist/adapters/BaseAdapter.d.ts.map +1 -1
- package/dist/adapters/BaseAdapter.js +11 -6
- package/dist/adapters/BaseAdapter.js.map +1 -1
- package/dist/adapters/BasicAdapter.d.ts.map +1 -1
- package/dist/adapters/BasicAdapter.js +12 -2
- package/dist/adapters/BasicAdapter.js.map +1 -1
- package/dist/adapters/StandardAdapter.d.ts.map +1 -1
- package/dist/adapters/StandardAdapter.js +12 -2
- package/dist/adapters/StandardAdapter.js.map +1 -1
- package/dist/adapters/X402Adapter.d.ts +161 -199
- package/dist/adapters/X402Adapter.d.ts.map +1 -1
- package/dist/adapters/X402Adapter.js +603 -414
- package/dist/adapters/X402Adapter.js.map +1 -1
- package/dist/adapters/index.d.ts +1 -1
- package/dist/adapters/index.d.ts.map +1 -1
- package/dist/adapters/index.js.map +1 -1
- package/dist/builders/DeliveryProofBuilder.d.ts.map +1 -1
- package/dist/builders/DeliveryProofBuilder.js +3 -2
- package/dist/builders/DeliveryProofBuilder.js.map +1 -1
- package/dist/cli/agirails.js +12 -4
- package/dist/cli/agirails.js.map +1 -1
- package/dist/cli/commands/autopublish.js +9 -1
- package/dist/cli/commands/autopublish.js.map +1 -1
- package/dist/cli/commands/config.js +1 -12
- package/dist/cli/commands/config.js.map +1 -1
- package/dist/cli/commands/deploy-env.js +1 -1
- package/dist/cli/commands/deploy-env.js.map +1 -1
- package/dist/cli/commands/diff.js +38 -4
- package/dist/cli/commands/diff.js.map +1 -1
- package/dist/cli/commands/health.js +3 -1
- package/dist/cli/commands/health.js.map +1 -1
- package/dist/cli/commands/init.d.ts +2 -0
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +75 -2
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/pay.d.ts.map +1 -1
- package/dist/cli/commands/pay.js +23 -0
- package/dist/cli/commands/pay.js.map +1 -1
- package/dist/cli/commands/publish.js +15 -8
- package/dist/cli/commands/publish.js.map +1 -1
- package/dist/cli/commands/pull.js +3 -1
- package/dist/cli/commands/pull.js.map +1 -1
- package/dist/cli/commands/receipt.d.ts +17 -3
- package/dist/cli/commands/receipt.d.ts.map +1 -1
- package/dist/cli/commands/receipt.js +95 -33
- package/dist/cli/commands/receipt.js.map +1 -1
- package/dist/cli/commands/test.d.ts.map +1 -1
- package/dist/cli/commands/test.js +222 -60
- package/dist/cli/commands/test.js.map +1 -1
- package/dist/cli/commands/tx.js +13 -0
- package/dist/cli/commands/tx.js.map +1 -1
- package/dist/cli/commands/verify.d.ts +14 -0
- package/dist/cli/commands/verify.d.ts.map +1 -0
- package/dist/cli/commands/verify.js +253 -0
- package/dist/cli/commands/verify.js.map +1 -0
- package/dist/cli/index.js +5 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/receiptUpload.d.ts +52 -0
- package/dist/cli/receiptUpload.d.ts.map +1 -0
- package/dist/cli/receiptUpload.js +134 -0
- package/dist/cli/receiptUpload.js.map +1 -0
- package/dist/cli/utils/banner.d.ts +31 -0
- package/dist/cli/utils/banner.d.ts.map +1 -0
- package/dist/cli/utils/banner.js +92 -0
- package/dist/cli/utils/banner.js.map +1 -0
- package/dist/cli/utils/config.d.ts +0 -2
- package/dist/cli/utils/config.d.ts.map +1 -1
- package/dist/cli/utils/config.js +40 -25
- package/dist/cli/utils/config.js.map +1 -1
- package/dist/cli/utils/output.d.ts +2 -0
- package/dist/cli/utils/output.d.ts.map +1 -1
- package/dist/cli/utils/output.js +7 -1
- package/dist/cli/utils/output.js.map +1 -1
- package/dist/cli/utils/share.d.ts +51 -0
- package/dist/cli/utils/share.d.ts.map +1 -0
- package/dist/cli/utils/share.js +133 -0
- package/dist/cli/utils/share.js.map +1 -0
- package/dist/config/agirailsmd.d.ts.map +1 -1
- package/dist/config/agirailsmd.js +2 -1
- package/dist/config/agirailsmd.js.map +1 -1
- package/dist/config/defaults.d.ts +2 -2
- package/dist/config/defaults.d.ts.map +1 -1
- package/dist/config/defaults.js +9 -3
- package/dist/config/defaults.js.map +1 -1
- package/dist/config/networks.d.ts +7 -0
- package/dist/config/networks.d.ts.map +1 -1
- package/dist/config/networks.js +20 -11
- package/dist/config/networks.js.map +1 -1
- package/dist/config/pendingPublish.d.ts.map +1 -1
- package/dist/config/pendingPublish.js +10 -3
- package/dist/config/pendingPublish.js.map +1 -1
- package/dist/config/syncOperations.d.ts.map +1 -1
- package/dist/config/syncOperations.js +4 -2
- package/dist/config/syncOperations.js.map +1 -1
- package/dist/erc8004/ERC8004Bridge.d.ts.map +1 -1
- package/dist/erc8004/ERC8004Bridge.js +0 -1
- package/dist/erc8004/ERC8004Bridge.js.map +1 -1
- package/dist/errors/ACTPError.d.ts +24 -0
- package/dist/errors/ACTPError.d.ts.map +1 -0
- package/dist/errors/ACTPError.js +35 -0
- package/dist/errors/ACTPError.js.map +1 -0
- package/dist/errors/X402Errors.d.ts +106 -0
- package/dist/errors/X402Errors.d.ts.map +1 -0
- package/dist/errors/X402Errors.js +160 -0
- package/dist/errors/X402Errors.js.map +1 -0
- package/dist/errors/index.d.ts +3 -9
- package/dist/errors/index.d.ts.map +1 -1
- package/dist/errors/index.js +38 -33
- package/dist/errors/index.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +15 -3
- package/dist/index.js.map +1 -1
- package/dist/level0/Provider.d.ts +5 -0
- package/dist/level0/Provider.d.ts.map +1 -1
- package/dist/level0/ServiceDirectory.d.ts.map +1 -1
- package/dist/level0/ServiceDirectory.js +3 -2
- package/dist/level0/ServiceDirectory.js.map +1 -1
- package/dist/level0/provide.d.ts.map +1 -1
- package/dist/level0/provide.js +11 -8
- package/dist/level0/provide.js.map +1 -1
- package/dist/level0/request.d.ts.map +1 -1
- package/dist/level0/request.js +14 -6
- package/dist/level0/request.js.map +1 -1
- package/dist/level1/Agent.d.ts +1 -1
- package/dist/level1/Agent.d.ts.map +1 -1
- package/dist/level1/Agent.js +12 -6
- package/dist/level1/Agent.js.map +1 -1
- package/dist/level1/pricing/PriceCalculator.d.ts.map +1 -1
- package/dist/level1/pricing/PriceCalculator.js +4 -12
- package/dist/level1/pricing/PriceCalculator.js.map +1 -1
- package/dist/protocol/ACTPKernel.d.ts +4 -1
- package/dist/protocol/ACTPKernel.d.ts.map +1 -1
- package/dist/protocol/ACTPKernel.js +2 -1
- package/dist/protocol/ACTPKernel.js.map +1 -1
- package/dist/protocol/EventMonitor.d.ts +27 -1
- package/dist/protocol/EventMonitor.d.ts.map +1 -1
- package/dist/protocol/EventMonitor.js +11 -9
- package/dist/protocol/EventMonitor.js.map +1 -1
- package/dist/protocol/ProofGenerator.d.ts.map +1 -1
- package/dist/protocol/ProofGenerator.js +3 -2
- package/dist/protocol/ProofGenerator.js.map +1 -1
- package/dist/runtime/BlockchainRuntime.d.ts +2 -0
- package/dist/runtime/BlockchainRuntime.d.ts.map +1 -1
- package/dist/runtime/BlockchainRuntime.js +19 -6
- package/dist/runtime/BlockchainRuntime.js.map +1 -1
- package/dist/runtime/MockRuntime.d.ts +3 -2
- package/dist/runtime/MockRuntime.d.ts.map +1 -1
- package/dist/runtime/MockRuntime.js +16 -22
- package/dist/runtime/MockRuntime.js.map +1 -1
- package/dist/runtime/types/MockState.d.ts +4 -0
- package/dist/runtime/types/MockState.d.ts.map +1 -1
- package/dist/runtime/types/MockState.js.map +1 -1
- package/dist/server/buildX402Server.d.ts +131 -0
- package/dist/server/buildX402Server.d.ts.map +1 -0
- package/dist/server/buildX402Server.js +151 -0
- package/dist/server/buildX402Server.js.map +1 -0
- package/dist/server/index.d.ts +33 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +36 -0
- package/dist/server/index.js.map +1 -0
- package/dist/types/adapter.d.ts +42 -12
- package/dist/types/adapter.d.ts.map +1 -1
- package/dist/types/adapter.js +6 -1
- package/dist/types/adapter.js.map +1 -1
- package/dist/types/eip712.d.ts +20 -0
- package/dist/types/eip712.d.ts.map +1 -1
- package/dist/types/x402.d.ts +8 -8
- package/dist/utils/security.d.ts.map +1 -1
- package/dist/utils/security.js +4 -6
- package/dist/utils/security.js.map +1 -1
- package/dist/wallet/AutoWalletProvider.d.ts +45 -1
- package/dist/wallet/AutoWalletProvider.d.ts.map +1 -1
- package/dist/wallet/AutoWalletProvider.js +154 -1
- package/dist/wallet/AutoWalletProvider.js.map +1 -1
- package/dist/wallet/EOAWalletProvider.d.ts +13 -1
- package/dist/wallet/EOAWalletProvider.d.ts.map +1 -1
- package/dist/wallet/EOAWalletProvider.js +24 -0
- package/dist/wallet/EOAWalletProvider.js.map +1 -1
- package/dist/wallet/IWalletProvider.d.ts +34 -0
- package/dist/wallet/IWalletProvider.d.ts.map +1 -1
- package/dist/wallet/SmartWalletRouter.d.ts.map +1 -1
- package/dist/wallet/SmartWalletRouter.js +3 -1
- package/dist/wallet/SmartWalletRouter.js.map +1 -1
- package/dist/wallet/aa/BundlerClient.js +8 -4
- package/dist/wallet/aa/BundlerClient.js.map +1 -1
- package/dist/wallet/aa/DualNonceManager.d.ts +4 -1
- package/dist/wallet/aa/DualNonceManager.d.ts.map +1 -1
- package/dist/wallet/aa/DualNonceManager.js +3 -0
- package/dist/wallet/aa/DualNonceManager.js.map +1 -1
- package/dist/wallet/keystore.d.ts.map +1 -1
- package/dist/wallet/keystore.js +6 -4
- package/dist/wallet/keystore.js.map +1 -1
- package/package.json +16 -3
- 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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DualNonceManager.d.ts","sourceRoot":"","sources":["../../../src/wallet/aa/DualNonceManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAsDhC,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAyB;IAClD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAS;IAC3C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAe;IAErC,uEAAuE;IACvE,OAAO,CAAC,eAAe,CAAqB;IAC5C,qDAAqD;IACrD,OAAO,CAAC,2BAA2B,CAAqB;IACxD,oFAAoF;IACpF,OAAO,CAAC,wBAAwB,CAAS;gBAGvC,QAAQ,EAAE,MAAM,CAAC,eAAe,EAChC,aAAa,EAAE,MAAM,EACrB,iBAAiB,EAAE,MAAM,EACzB,oBAAoB,CAAC,EAAE,MAAM;IAU/B;;;;;;;;OAQG;IACG,OAAO,CAAC,CAAC,EACb,EAAE,EAAE,CAAC,MAAM,EAAE;QAAE,eAAe,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC;QACtE,MAAM,EAAE,CAAC,CAAC;QACV,OAAO,EAAE,OAAO,CAAC;KAClB,CAAC,EACF,mBAAmB,GAAE,OAAc,GAClC,OAAO,CAAC,CAAC,CAAC;IA+Bb
|
|
1
|
+
{"version":3,"file":"DualNonceManager.d.ts","sourceRoot":"","sources":["../../../src/wallet/aa/DualNonceManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAsDhC,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAyB;IAClD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAS;IAC3C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAe;IAErC,uEAAuE;IACvE,OAAO,CAAC,eAAe,CAAqB;IAC5C,qDAAqD;IACrD,OAAO,CAAC,2BAA2B,CAAqB;IACxD,oFAAoF;IACpF,OAAO,CAAC,wBAAwB,CAAS;gBAGvC,QAAQ,EAAE,MAAM,CAAC,eAAe,EAChC,aAAa,EAAE,MAAM,EACrB,iBAAiB,EAAE,MAAM,EACzB,oBAAoB,CAAC,EAAE,MAAM;IAU/B;;;;;;;;OAQG;IACG,OAAO,CAAC,CAAC,EACb,EAAE,EAAE,CAAC,MAAM,EAAE;QAAE,eAAe,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC;QACtE,MAAM,EAAE,CAAC,CAAC;QACV,OAAO,EAAE,OAAO,CAAC;KAClB,CAAC,EACF,mBAAmB,GAAE,OAAc,GAClC,OAAO,CAAC,CAAC,CAAC;IA+Bb;;;;;;OAMG;IACG,mBAAmB,IAAI,OAAO,CAAC,MAAM,CAAC;IAS5C;;;;OAIG;YACW,aAAa;IAgD3B;;OAEG;IACH,eAAe,IAAI,IAAI;IAIvB;;;;;OAKG;IACH,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIvC;;;;;;OAMG;YACW,2BAA2B;IA2DzC;;;;OAIG;YACW,sCAAsC;CA0CrD"}
|
|
@@ -113,6 +113,9 @@ class DualNonceManager {
|
|
|
113
113
|
/**
|
|
114
114
|
* Read current EntryPoint nonce for the sender.
|
|
115
115
|
* Key 0 is the default key for CoinbaseSmartWallet.
|
|
116
|
+
*
|
|
117
|
+
* Public so that retry loops (e.g. payACTPBatched nonce collision)
|
|
118
|
+
* can re-read after a consumed UserOp.
|
|
116
119
|
*/
|
|
117
120
|
async readEntryPointNonce() {
|
|
118
121
|
const entryPoint = new ethers_1.ethers.Contract(constants_1.ENTRYPOINT_V06, ENTRYPOINT_NONCE_ABI, this.provider);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DualNonceManager.js","sourceRoot":"","sources":["../../../src/wallet/aa/DualNonceManager.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"DualNonceManager.js","sourceRoot":"","sources":["../../../src/wallet/aa/DualNonceManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keystore.d.ts","sourceRoot":"","sources":["../../src/wallet/keystore.ts"],"names":[],"mappings":"AAuBA,MAAM,WAAW,wBAAwB;IACvC,uFAAuF;IACvF,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;
|
|
1
|
+
{"version":3,"file":"keystore.d.ts","sourceRoot":"","sources":["../../src/wallet/keystore.ts"],"names":[],"mappings":"AAuBA,MAAM,WAAW,wBAAwB;IACvC,uFAAuF;IACvF,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAmFD;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CACrC,cAAc,CAAC,EAAE,MAAM,EACvB,OAAO,CAAC,EAAE,wBAAwB,GACjC,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CA2F7B;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAe5E;AAED;;;GAGG;AACH,wBAAgB,WAAW,IAAI,IAAI,CAIlC"}
|
package/dist/wallet/keystore.js
CHANGED
|
@@ -56,9 +56,11 @@ function validateStateDirectory(stateDirectory) {
|
|
|
56
56
|
if (stateDirectory.includes('\0')) {
|
|
57
57
|
throw new Error('Invalid stateDirectory: null byte detected');
|
|
58
58
|
}
|
|
59
|
-
//
|
|
60
|
-
|
|
61
|
-
|
|
59
|
+
// Normalize, then check if any '..' segments remain (relative traversal)
|
|
60
|
+
const path = require('path');
|
|
61
|
+
const normalized = path.normalize(stateDirectory);
|
|
62
|
+
const segments = normalized.split(path.sep);
|
|
63
|
+
if (segments.includes('..')) {
|
|
62
64
|
throw new Error('Invalid stateDirectory: path traversal detected (..)');
|
|
63
65
|
}
|
|
64
66
|
}
|
|
@@ -178,7 +180,7 @@ async function resolvePrivateKey(stateDirectory, options) {
|
|
|
178
180
|
return undefined;
|
|
179
181
|
const password = process.env.ACTP_KEY_PASSWORD;
|
|
180
182
|
if (!password) {
|
|
181
|
-
throw new Error('Keystore found
|
|
183
|
+
throw new Error('Keystore found but ACTP_KEY_PASSWORD is not set.\n' +
|
|
182
184
|
'Set it: export ACTP_KEY_PASSWORD="your-password"');
|
|
183
185
|
}
|
|
184
186
|
const keystore = fs.readFileSync(keystorePath, 'utf-8');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keystore.js","sourceRoot":"","sources":["../../src/wallet/keystore.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;GAQG;AACH,uCAAyB;AACzB,2CAA6B;AAC7B,mCAAgC;AAChC,4CAA4C;AAE5C,4CAA4C;AAC5C,MAAM,YAAY,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAapC,4EAA4E;AAC5E,MAAM,MAAM,GAAG,IAAI,GAAG,EAAsB,CAAC;AAE7C,+DAA+D;AAC/D,IAAI,SAAS,GAAsB,IAAI,CAAC;AAExC,8DAA8D;AAC9D,IAAI,YAAY,GAAsB,IAAI,CAAC;AAE3C,SAAS,SAAS,CAAC,KAAiB;IAClC,OAAO,IAAI,CAAC,GAAG,EAAE,IAAI,KAAK,CAAC,SAAS,CAAC;AACvC,CAAC;AAED;;;GAGG;AACH,SAAS,sBAAsB,CAAC,cAAsB;IACpD,IAAI,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAChE,CAAC;IACD,
|
|
1
|
+
{"version":3,"file":"keystore.js","sourceRoot":"","sources":["../../src/wallet/keystore.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agirails/sdk",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.3.0",
|
|
4
4
|
"description": "AGIRAILS SDK for the ACTP (Agent Commerce Transaction Protocol) - Unified mock + blockchain support",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -14,6 +14,11 @@
|
|
|
14
14
|
"types": "./dist/storage/index.d.ts",
|
|
15
15
|
"require": "./dist/storage/index.js",
|
|
16
16
|
"default": "./dist/storage/index.js"
|
|
17
|
+
},
|
|
18
|
+
"./server": {
|
|
19
|
+
"types": "./dist/server/index.d.ts",
|
|
20
|
+
"require": "./dist/server/index.js",
|
|
21
|
+
"default": "./dist/server/index.js"
|
|
17
22
|
}
|
|
18
23
|
},
|
|
19
24
|
"bin": {
|
|
@@ -62,17 +67,21 @@
|
|
|
62
67
|
},
|
|
63
68
|
"homepage": "https://github.com/agirails/sdk-js#readme",
|
|
64
69
|
"dependencies": {
|
|
65
|
-
"@aws-sdk/client-s3": "^3.
|
|
70
|
+
"@aws-sdk/client-s3": "^3.1030.0",
|
|
66
71
|
"@ethereum-attestation-service/eas-sdk": "1.6.1",
|
|
67
72
|
"@irys/sdk": "0.2.11",
|
|
73
|
+
"@x402/core": "~2.9.0",
|
|
74
|
+
"@x402/evm": "~2.9.0",
|
|
75
|
+
"@x402/fetch": "~2.9.0",
|
|
68
76
|
"commander": "11.1.0",
|
|
69
77
|
"did-resolver": "4.1.0",
|
|
70
78
|
"dotenv": "17.2.3",
|
|
71
|
-
"ethers": "6.15.0",
|
|
79
|
+
"ethers": "^6.15.0",
|
|
72
80
|
"ethr-did-resolver": "11.0.5",
|
|
73
81
|
"fast-json-stable-stringify": "2.1.0",
|
|
74
82
|
"kubo-rpc-client": "6.1.0",
|
|
75
83
|
"proper-lockfile": "4.1.2",
|
|
84
|
+
"viem": "^2.47.12",
|
|
76
85
|
"yaml": "^2.8.2",
|
|
77
86
|
"zod": "^3.22.4"
|
|
78
87
|
},
|
|
@@ -97,5 +106,9 @@
|
|
|
97
106
|
},
|
|
98
107
|
"engines": {
|
|
99
108
|
"node": ">=18.0.0"
|
|
109
|
+
},
|
|
110
|
+
"overrides": {
|
|
111
|
+
"axios": "^1.15.0",
|
|
112
|
+
"fast-xml-parser": "^5.3.5"
|
|
100
113
|
}
|
|
101
114
|
}
|
|
@@ -1,152 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* BeginnerAdapter - High-level, opinionated API for simple use cases
|
|
3
|
-
*
|
|
4
|
-
* Provides the simplest possible interface for creating and checking transactions.
|
|
5
|
-
* Designed for developers who want to "just make it work" without deep protocol knowledge.
|
|
6
|
-
*
|
|
7
|
-
* Key Features:
|
|
8
|
-
* - Smart defaults (24h deadline, 2-day dispute window)
|
|
9
|
-
* - Inferred requester (from constructor)
|
|
10
|
-
* - User-friendly input (strings, no BigInt)
|
|
11
|
-
* - User-friendly output (formatted amounts, ISO dates)
|
|
12
|
-
*
|
|
13
|
-
* @module adapters/BeginnerAdapter
|
|
14
|
-
*/
|
|
15
|
-
import { BaseAdapter } from './BaseAdapter';
|
|
16
|
-
import { IACTPRuntime } from '../runtime/IACTPRuntime';
|
|
17
|
-
import { EASHelper } from '../protocol/EASHelper';
|
|
18
|
-
/**
|
|
19
|
-
* Parameters for creating a simple payment.
|
|
20
|
-
*
|
|
21
|
-
* This is the most beginner-friendly interface - minimal required fields.
|
|
22
|
-
*/
|
|
23
|
-
export interface BeginnerPayParams {
|
|
24
|
-
/** Recipient address (provider) */
|
|
25
|
-
to: string;
|
|
26
|
-
/** Amount in user-friendly format ("100", "100.50", "100 USDC", "$100") */
|
|
27
|
-
amount: string | number;
|
|
28
|
-
/** Optional: Deadline as relative time ("+24h") or Unix timestamp. Defaults to +24h */
|
|
29
|
-
deadline?: string | number;
|
|
30
|
-
/** Optional: Dispute window in seconds. Defaults to 172800 (2 days) */
|
|
31
|
-
disputeWindow?: number;
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* Result of creating a payment.
|
|
35
|
-
*
|
|
36
|
-
* Provides user-friendly formatted data (not raw protocol types).
|
|
37
|
-
*/
|
|
38
|
-
export interface BeginnerPayResult {
|
|
39
|
-
/** Transaction ID (bytes32 hex string) */
|
|
40
|
-
txId: string;
|
|
41
|
-
/** Provider address */
|
|
42
|
-
provider: string;
|
|
43
|
-
/** Requester address (caller) */
|
|
44
|
-
requester: string;
|
|
45
|
-
/** Amount in USDC (human-readable, e.g., "100.00 USDC") */
|
|
46
|
-
amount: string;
|
|
47
|
-
/** Deadline as ISO 8601 timestamp */
|
|
48
|
-
deadline: string;
|
|
49
|
-
/** Transaction state */
|
|
50
|
-
state: string;
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* BeginnerAdapter - High-level API for simple payment flows.
|
|
54
|
-
*
|
|
55
|
-
* This adapter provides the simplest possible interface:
|
|
56
|
-
* - `pay()` - Create and fund a transaction in one call
|
|
57
|
-
* - `checkStatus()` - Get transaction status with action hints
|
|
58
|
-
*
|
|
59
|
-
* All complexity is hidden behind smart defaults.
|
|
60
|
-
*
|
|
61
|
-
* @example
|
|
62
|
-
* ```typescript
|
|
63
|
-
* const client = await ACTPClient.create({ mode: 'mock' });
|
|
64
|
-
*
|
|
65
|
-
* // Simple payment (all defaults)
|
|
66
|
-
* const result = await client.beginner.pay({
|
|
67
|
-
* to: '0xProvider123',
|
|
68
|
-
* amount: '100',
|
|
69
|
-
* });
|
|
70
|
-
* console.log('Transaction ID:', result.txId);
|
|
71
|
-
* console.log('Amount:', result.amount); // "100.00 USDC"
|
|
72
|
-
*
|
|
73
|
-
* // Check status
|
|
74
|
-
* const status = await client.beginner.checkStatus(result.txId);
|
|
75
|
-
* if (status.canAccept) {
|
|
76
|
-
* console.log('Provider can accept this transaction');
|
|
77
|
-
* }
|
|
78
|
-
* ```
|
|
79
|
-
*/
|
|
80
|
-
export declare class BeginnerAdapter extends BaseAdapter {
|
|
81
|
-
private runtime;
|
|
82
|
-
private easHelper?;
|
|
83
|
-
/**
|
|
84
|
-
* Creates a new BeginnerAdapter instance.
|
|
85
|
-
*
|
|
86
|
-
* @param runtime - ACTP runtime implementation (MockRuntime or BlockchainRuntime)
|
|
87
|
-
* @param requesterAddress - The requester's Ethereum address
|
|
88
|
-
* @param easHelper - Optional EAS helper for attestation verification (SECURITY FIX C-4)
|
|
89
|
-
*/
|
|
90
|
-
constructor(runtime: IACTPRuntime, requesterAddress: string, easHelper?: EASHelper | undefined);
|
|
91
|
-
/**
|
|
92
|
-
* Create a payment transaction with smart defaults.
|
|
93
|
-
*
|
|
94
|
-
* This is the simplest way to create a transaction - just specify
|
|
95
|
-
* recipient and amount. All other parameters use sensible defaults.
|
|
96
|
-
*
|
|
97
|
-
* Smart defaults:
|
|
98
|
-
* - Requester: Inferred from constructor
|
|
99
|
-
* - Deadline: 24 hours from now
|
|
100
|
-
* - Dispute window: 2 days (172800 seconds)
|
|
101
|
-
*
|
|
102
|
-
* Validations performed:
|
|
103
|
-
* - Address format (0x-prefixed hex)
|
|
104
|
-
* - Amount format (positive number)
|
|
105
|
-
* - Deadline in future
|
|
106
|
-
* - Cannot pay yourself
|
|
107
|
-
*
|
|
108
|
-
* @param params - Payment parameters
|
|
109
|
-
* @returns User-friendly payment result
|
|
110
|
-
* @throws {ValidationError} If inputs are invalid
|
|
111
|
-
*
|
|
112
|
-
* @example
|
|
113
|
-
* ```typescript
|
|
114
|
-
* const result = await adapter.pay({
|
|
115
|
-
* to: '0xProvider123',
|
|
116
|
-
* amount: '100.50',
|
|
117
|
-
* deadline: '+7d', // Optional: 7 days from now
|
|
118
|
-
* });
|
|
119
|
-
* ```
|
|
120
|
-
*/
|
|
121
|
-
pay(params: BeginnerPayParams): Promise<BeginnerPayResult>;
|
|
122
|
-
/**
|
|
123
|
-
* Check payment status by transaction ID.
|
|
124
|
-
*
|
|
125
|
-
* Returns current state plus action hints (what can be done next).
|
|
126
|
-
*
|
|
127
|
-
* Action hints:
|
|
128
|
-
* - `canAccept`: Provider can accept (INITIATED state, before deadline)
|
|
129
|
-
* - `canComplete`: Provider can mark as delivered (COMMITTED state)
|
|
130
|
-
* - `canDispute`: Requester can dispute (DELIVERED state, within dispute window)
|
|
131
|
-
*
|
|
132
|
-
* @param txId - Transaction ID to check
|
|
133
|
-
* @returns Status with action hints
|
|
134
|
-
* @throws {Error} If transaction not found
|
|
135
|
-
*
|
|
136
|
-
* @example
|
|
137
|
-
* ```typescript
|
|
138
|
-
* const status = await adapter.checkStatus(txId);
|
|
139
|
-
* console.log('State:', status.state); // "COMMITTED"
|
|
140
|
-
* if (status.canComplete) {
|
|
141
|
-
* // Provider can deliver now
|
|
142
|
-
* }
|
|
143
|
-
* ```
|
|
144
|
-
*/
|
|
145
|
-
checkStatus(txId: string): Promise<{
|
|
146
|
-
state: string;
|
|
147
|
-
canAccept: boolean;
|
|
148
|
-
canComplete: boolean;
|
|
149
|
-
canDispute: boolean;
|
|
150
|
-
}>;
|
|
151
|
-
}
|
|
152
|
-
//# sourceMappingURL=BeginnerAdapter.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"BeginnerAdapter.d.ts","sourceRoot":"","sources":["../../src/adapters/BeginnerAdapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,WAAW,EAAmD,MAAM,eAAe,CAAC;AAC7F,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEvD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAElD;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,mCAAmC;IACnC,EAAE,EAAE,MAAM,CAAC;IAEX,2EAA2E;IAC3E,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IAExB,uFAAuF;IACvF,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAE3B,uEAAuE;IACvE,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,0CAA0C;IAC1C,IAAI,EAAE,MAAM,CAAC;IAEb,uBAAuB;IACvB,QAAQ,EAAE,MAAM,CAAC;IAEjB,iCAAiC;IACjC,SAAS,EAAE,MAAM,CAAC;IAElB,2DAA2D;IAC3D,MAAM,EAAE,MAAM,CAAC;IAEf,qCAAqC;IACrC,QAAQ,EAAE,MAAM,CAAC;IAEjB,wBAAwB;IACxB,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,qBAAa,eAAgB,SAAQ,WAAW;IAS5C,OAAO,CAAC,OAAO;IAEf,OAAO,CAAC,SAAS,CAAC;IAVpB;;;;;;OAMG;gBAEO,OAAO,EAAE,YAAY,EAC7B,gBAAgB,EAAE,MAAM,EAChB,SAAS,CAAC,uBAAW;IAK/B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACG,GAAG,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAiDhE;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACG,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QACvC,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,OAAO,CAAC;QACnB,WAAW,EAAE,OAAO,CAAC;QACrB,UAAU,EAAE,OAAO,CAAC;KACrB,CAAC;CAgBH"}
|
|
@@ -1,168 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* BeginnerAdapter - High-level, opinionated API for simple use cases
|
|
4
|
-
*
|
|
5
|
-
* Provides the simplest possible interface for creating and checking transactions.
|
|
6
|
-
* Designed for developers who want to "just make it work" without deep protocol knowledge.
|
|
7
|
-
*
|
|
8
|
-
* Key Features:
|
|
9
|
-
* - Smart defaults (24h deadline, 2-day dispute window)
|
|
10
|
-
* - Inferred requester (from constructor)
|
|
11
|
-
* - User-friendly input (strings, no BigInt)
|
|
12
|
-
* - User-friendly output (formatted amounts, ISO dates)
|
|
13
|
-
*
|
|
14
|
-
* @module adapters/BeginnerAdapter
|
|
15
|
-
*/
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.BeginnerAdapter = void 0;
|
|
18
|
-
const BaseAdapter_1 = require("./BaseAdapter");
|
|
19
|
-
/**
|
|
20
|
-
* BeginnerAdapter - High-level API for simple payment flows.
|
|
21
|
-
*
|
|
22
|
-
* This adapter provides the simplest possible interface:
|
|
23
|
-
* - `pay()` - Create and fund a transaction in one call
|
|
24
|
-
* - `checkStatus()` - Get transaction status with action hints
|
|
25
|
-
*
|
|
26
|
-
* All complexity is hidden behind smart defaults.
|
|
27
|
-
*
|
|
28
|
-
* @example
|
|
29
|
-
* ```typescript
|
|
30
|
-
* const client = await ACTPClient.create({ mode: 'mock' });
|
|
31
|
-
*
|
|
32
|
-
* // Simple payment (all defaults)
|
|
33
|
-
* const result = await client.beginner.pay({
|
|
34
|
-
* to: '0xProvider123',
|
|
35
|
-
* amount: '100',
|
|
36
|
-
* });
|
|
37
|
-
* console.log('Transaction ID:', result.txId);
|
|
38
|
-
* console.log('Amount:', result.amount); // "100.00 USDC"
|
|
39
|
-
*
|
|
40
|
-
* // Check status
|
|
41
|
-
* const status = await client.beginner.checkStatus(result.txId);
|
|
42
|
-
* if (status.canAccept) {
|
|
43
|
-
* console.log('Provider can accept this transaction');
|
|
44
|
-
* }
|
|
45
|
-
* ```
|
|
46
|
-
*/
|
|
47
|
-
class BeginnerAdapter extends BaseAdapter_1.BaseAdapter {
|
|
48
|
-
/**
|
|
49
|
-
* Creates a new BeginnerAdapter instance.
|
|
50
|
-
*
|
|
51
|
-
* @param runtime - ACTP runtime implementation (MockRuntime or BlockchainRuntime)
|
|
52
|
-
* @param requesterAddress - The requester's Ethereum address
|
|
53
|
-
* @param easHelper - Optional EAS helper for attestation verification (SECURITY FIX C-4)
|
|
54
|
-
*/
|
|
55
|
-
constructor(runtime, requesterAddress, easHelper) {
|
|
56
|
-
super(requesterAddress);
|
|
57
|
-
this.runtime = runtime;
|
|
58
|
-
this.easHelper = easHelper;
|
|
59
|
-
}
|
|
60
|
-
/**
|
|
61
|
-
* Create a payment transaction with smart defaults.
|
|
62
|
-
*
|
|
63
|
-
* This is the simplest way to create a transaction - just specify
|
|
64
|
-
* recipient and amount. All other parameters use sensible defaults.
|
|
65
|
-
*
|
|
66
|
-
* Smart defaults:
|
|
67
|
-
* - Requester: Inferred from constructor
|
|
68
|
-
* - Deadline: 24 hours from now
|
|
69
|
-
* - Dispute window: 2 days (172800 seconds)
|
|
70
|
-
*
|
|
71
|
-
* Validations performed:
|
|
72
|
-
* - Address format (0x-prefixed hex)
|
|
73
|
-
* - Amount format (positive number)
|
|
74
|
-
* - Deadline in future
|
|
75
|
-
* - Cannot pay yourself
|
|
76
|
-
*
|
|
77
|
-
* @param params - Payment parameters
|
|
78
|
-
* @returns User-friendly payment result
|
|
79
|
-
* @throws {ValidationError} If inputs are invalid
|
|
80
|
-
*
|
|
81
|
-
* @example
|
|
82
|
-
* ```typescript
|
|
83
|
-
* const result = await adapter.pay({
|
|
84
|
-
* to: '0xProvider123',
|
|
85
|
-
* amount: '100.50',
|
|
86
|
-
* deadline: '+7d', // Optional: 7 days from now
|
|
87
|
-
* });
|
|
88
|
-
* ```
|
|
89
|
-
*/
|
|
90
|
-
async pay(params) {
|
|
91
|
-
// Validate and parse inputs
|
|
92
|
-
const provider = this.validateAddress(params.to, 'to');
|
|
93
|
-
const amount = this.parseAmount(params.amount);
|
|
94
|
-
const currentTime = this.runtime.time.now();
|
|
95
|
-
const deadline = this.parseDeadline(params.deadline, currentTime);
|
|
96
|
-
// SECURITY FIX (L-1): Validate dispute window bounds
|
|
97
|
-
const disputeWindow = this.validateDisputeWindow(params.disputeWindow);
|
|
98
|
-
const requester = this.requesterAddress;
|
|
99
|
-
// Additional validations
|
|
100
|
-
if (requester.toLowerCase() === provider.toLowerCase()) {
|
|
101
|
-
throw new BaseAdapter_1.ValidationError('Cannot pay yourself (requester equals provider)');
|
|
102
|
-
}
|
|
103
|
-
if (deadline <= currentTime) {
|
|
104
|
-
throw new BaseAdapter_1.ValidationError('Deadline must be in the future');
|
|
105
|
-
}
|
|
106
|
-
// Create transaction
|
|
107
|
-
const txId = await this.runtime.createTransaction({
|
|
108
|
-
provider,
|
|
109
|
-
requester,
|
|
110
|
-
amount: amount.toString(),
|
|
111
|
-
deadline,
|
|
112
|
-
disputeWindow,
|
|
113
|
-
});
|
|
114
|
-
// Link escrow (auto-transitions to COMMITTED)
|
|
115
|
-
await this.runtime.linkEscrow(txId, amount.toString());
|
|
116
|
-
// Fetch transaction details for user-friendly response
|
|
117
|
-
const tx = await this.runtime.getTransaction(txId);
|
|
118
|
-
if (!tx) {
|
|
119
|
-
throw new Error(`Transaction ${txId} not found after creation`);
|
|
120
|
-
}
|
|
121
|
-
return {
|
|
122
|
-
txId,
|
|
123
|
-
provider,
|
|
124
|
-
requester,
|
|
125
|
-
amount: this.formatAmount(amount),
|
|
126
|
-
deadline: new Date(deadline * 1000).toISOString(),
|
|
127
|
-
state: tx.state,
|
|
128
|
-
};
|
|
129
|
-
}
|
|
130
|
-
/**
|
|
131
|
-
* Check payment status by transaction ID.
|
|
132
|
-
*
|
|
133
|
-
* Returns current state plus action hints (what can be done next).
|
|
134
|
-
*
|
|
135
|
-
* Action hints:
|
|
136
|
-
* - `canAccept`: Provider can accept (INITIATED state, before deadline)
|
|
137
|
-
* - `canComplete`: Provider can mark as delivered (COMMITTED state)
|
|
138
|
-
* - `canDispute`: Requester can dispute (DELIVERED state, within dispute window)
|
|
139
|
-
*
|
|
140
|
-
* @param txId - Transaction ID to check
|
|
141
|
-
* @returns Status with action hints
|
|
142
|
-
* @throws {Error} If transaction not found
|
|
143
|
-
*
|
|
144
|
-
* @example
|
|
145
|
-
* ```typescript
|
|
146
|
-
* const status = await adapter.checkStatus(txId);
|
|
147
|
-
* console.log('State:', status.state); // "COMMITTED"
|
|
148
|
-
* if (status.canComplete) {
|
|
149
|
-
* // Provider can deliver now
|
|
150
|
-
* }
|
|
151
|
-
* ```
|
|
152
|
-
*/
|
|
153
|
-
async checkStatus(txId) {
|
|
154
|
-
const tx = await this.runtime.getTransaction(txId);
|
|
155
|
-
if (!tx) {
|
|
156
|
-
throw new Error(`Transaction ${txId} not found`);
|
|
157
|
-
}
|
|
158
|
-
const now = this.runtime.time.now();
|
|
159
|
-
return {
|
|
160
|
-
state: tx.state,
|
|
161
|
-
canAccept: tx.state === 'INITIATED' && tx.deadline > now,
|
|
162
|
-
canComplete: tx.state === 'COMMITTED' || tx.state === 'IN_PROGRESS',
|
|
163
|
-
canDispute: tx.state === 'DELIVERED' && tx.completedAt !== null && tx.completedAt + tx.disputeWindow > now,
|
|
164
|
-
};
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
exports.BeginnerAdapter = BeginnerAdapter;
|
|
168
|
-
//# sourceMappingURL=BeginnerAdapter.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"BeginnerAdapter.js","sourceRoot":"","sources":["../../src/adapters/BeginnerAdapter.ts"],"names":[],"mappings":"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"}
|