@abbababa/sdk 0.7.0 → 1.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.
Files changed (83) hide show
  1. package/README.md +178 -60
  2. package/dist/agents.d.ts +15 -4
  3. package/dist/agents.d.ts.map +1 -1
  4. package/dist/agents.js +14 -1
  5. package/dist/agents.js.map +1 -1
  6. package/dist/buyer.d.ts +136 -25
  7. package/dist/buyer.d.ts.map +1 -1
  8. package/dist/buyer.js +277 -45
  9. package/dist/buyer.js.map +1 -1
  10. package/dist/channels.d.ts +2 -2
  11. package/dist/channels.d.ts.map +1 -1
  12. package/dist/channels.js.map +1 -1
  13. package/dist/checkout.d.ts +2 -2
  14. package/dist/checkout.d.ts.map +1 -1
  15. package/dist/checkout.js.map +1 -1
  16. package/dist/client.d.ts +3 -3
  17. package/dist/client.d.ts.map +1 -1
  18. package/dist/client.js +7 -6
  19. package/dist/client.js.map +1 -1
  20. package/dist/crypto.d.ts +93 -0
  21. package/dist/crypto.d.ts.map +1 -0
  22. package/dist/crypto.js +298 -0
  23. package/dist/crypto.js.map +1 -0
  24. package/dist/errors.d.ts +7 -7
  25. package/dist/errors.d.ts.map +1 -1
  26. package/dist/errors.js +8 -8
  27. package/dist/errors.js.map +1 -1
  28. package/dist/index.d.ts +9 -3
  29. package/dist/index.d.ts.map +1 -1
  30. package/dist/index.js +8 -2
  31. package/dist/index.js.map +1 -1
  32. package/dist/memory.d.ts +2 -2
  33. package/dist/memory.d.ts.map +1 -1
  34. package/dist/memory.js.map +1 -1
  35. package/dist/messages.d.ts +27 -3
  36. package/dist/messages.d.ts.map +1 -1
  37. package/dist/messages.js +35 -0
  38. package/dist/messages.js.map +1 -1
  39. package/dist/register.d.ts +0 -1
  40. package/dist/register.d.ts.map +1 -1
  41. package/dist/register.js +3 -4
  42. package/dist/register.js.map +1 -1
  43. package/dist/seller.d.ts +102 -22
  44. package/dist/seller.d.ts.map +1 -1
  45. package/dist/seller.js +190 -45
  46. package/dist/seller.js.map +1 -1
  47. package/dist/services.d.ts +2 -2
  48. package/dist/services.d.ts.map +1 -1
  49. package/dist/services.js.map +1 -1
  50. package/dist/transactions.d.ts +2 -2
  51. package/dist/transactions.d.ts.map +1 -1
  52. package/dist/transactions.js.map +1 -1
  53. package/dist/types.d.ts +131 -57
  54. package/dist/types.d.ts.map +1 -1
  55. package/dist/types.js.map +1 -1
  56. package/dist/wallet/abi.d.ts +15 -0
  57. package/dist/wallet/abi.d.ts.map +1 -1
  58. package/dist/wallet/abi.js +18 -8
  59. package/dist/wallet/abi.js.map +1 -1
  60. package/dist/wallet/constants.d.ts +8 -6
  61. package/dist/wallet/constants.d.ts.map +1 -1
  62. package/dist/wallet/constants.js +38 -23
  63. package/dist/wallet/constants.js.map +1 -1
  64. package/dist/wallet/eoa-wallet.d.ts +21 -0
  65. package/dist/wallet/eoa-wallet.d.ts.map +1 -0
  66. package/dist/wallet/eoa-wallet.js +37 -0
  67. package/dist/wallet/eoa-wallet.js.map +1 -0
  68. package/dist/wallet/escrow.d.ts +38 -8
  69. package/dist/wallet/escrow.d.ts.map +1 -1
  70. package/dist/wallet/escrow.js +71 -18
  71. package/dist/wallet/escrow.js.map +1 -1
  72. package/dist/wallet/index.d.ts +0 -2
  73. package/dist/wallet/index.d.ts.map +1 -1
  74. package/dist/wallet/index.js +0 -2
  75. package/dist/wallet/index.js.map +1 -1
  76. package/dist/wallet/session-key.d.ts +71 -0
  77. package/dist/wallet/session-key.d.ts.map +1 -0
  78. package/dist/wallet/session-key.js +82 -0
  79. package/dist/wallet/session-key.js.map +1 -0
  80. package/dist/wallet/session-keys.js +8 -8
  81. package/dist/wallet/smart-account.d.ts +2 -2
  82. package/dist/wallet/smart-account.js +4 -4
  83. package/package.json +14 -32
@@ -1,7 +1,7 @@
1
1
  import { createPublicClient, http, } from 'viem';
2
2
  import { polygonAmoy, polygon, baseSepolia, base } from 'viem/chains';
3
3
  import { ABBABABA_ESCROW_ABI, ERC20_ABI } from './abi.js';
4
- import { ESCROW_V4_ADDRESSES, BASE_SEPOLIA_CHAIN_ID, ZERODEV_BUNDLER_URL, ZERODEV_PAYMASTER_URL, MIN_GAS_BALANCE, TOKEN_REGISTRY, } from './constants.js';
4
+ import { ESCROW_V2_ADDRESSES, BASE_SEPOLIA_CHAIN_ID, ZERODEV_BUNDLER_URL, ZERODEV_PAYMASTER_URL, MIN_GAS_BALANCE, TOKEN_REGISTRY, } from './constants.js';
5
5
  import { buildKernelClient } from './smart-account.js';
6
6
  const CHAINS = {
7
7
  polygon,
@@ -11,11 +11,11 @@ const CHAINS = {
11
11
  };
12
12
  const DEFAULT_VALIDITY_SECONDS = 3600; // 1 hour
13
13
  /**
14
- * Build escrow-scoped policies for a session key (V4).
14
+ * Build escrow-scoped policies for a session key (V2).
15
15
  *
16
- * Creates a CallPolicy restricted to V4 escrow operations:
17
- * 1. ERC20.approve for each allowed token (spender must equal V4 escrow contract)
18
- * 2. Escrow.createEscrow (5 args: escrowId, seller, amount, token, deadline)
16
+ * Creates a CallPolicy restricted to V2 escrow operations:
17
+ * 1. ERC20.approve for each allowed token (spender must equal V2 escrow contract)
18
+ * 2. Escrow.createEscrow (8 args: escrowId, seller, amount, token, deadline, disputeWindow, abandonmentGrace, criteriaHash)
19
19
  * 3. Escrow.submitDelivery
20
20
  * 4. Escrow.accept
21
21
  * 5. Escrow.finalizeRelease
@@ -33,10 +33,10 @@ export async function buildEscrowPolicies(config) {
33
33
  const validitySeconds = config.validitySeconds ?? DEFAULT_VALIDITY_SECONDS;
34
34
  const { toCallPolicy, CallPolicyVersion, ParamCondition, toGasPolicy } = await import('@zerodev/permissions/policies');
35
35
  const { toTimestampPolicy } = await import('@zerodev/permissions/policies');
36
- // Resolve V4 escrow contract
37
- const escrowAddress = ESCROW_V4_ADDRESSES[chainId];
36
+ // Resolve V2 escrow contract
37
+ const escrowAddress = ESCROW_V2_ADDRESSES[chainId];
38
38
  if (!escrowAddress)
39
- throw new Error(`No V4 escrow contract for chain ${chainId}`);
39
+ throw new Error(`No V2 escrow contract for chain ${chainId}`);
40
40
  // Resolve tokens to allow
41
41
  const registry = TOKEN_REGISTRY[chainId] ?? {};
42
42
  const tokenSymbols = config.tokens ?? Object.keys(registry);
@@ -17,9 +17,9 @@ export declare function buildKernelClient(opts: {
17
17
  * Create a ZeroDev Kernel smart account (ERC-7579).
18
18
  *
19
19
  * Gas strategy:
20
- * - 'self-funded': Agent pays gas with native POL.
20
+ * - 'self-funded': Agent pays gas with native ETH.
21
21
  * - 'erc20': Agent pays gas in USDC via ZeroDev's ERC-20 paymaster.
22
- * - 'auto' (default): Checks POL balance — uses self-funded if >= 0.01 POL,
22
+ * - 'auto' (default): Checks ETH balance — uses self-funded if >= 0.01 ETH,
23
23
  * otherwise falls back to ERC-20 paymaster.
24
24
  *
25
25
  * Requires peer dependencies:
@@ -10,9 +10,9 @@ const CHAINS = {
10
10
  /**
11
11
  * Resolve the gas strategy for a kernel client.
12
12
  *
13
- * - 'self-funded': No paymaster — account pays gas with native POL.
13
+ * - 'self-funded': No paymaster — account pays gas with native ETH.
14
14
  * - 'erc20': ERC-20 paymaster — account pays gas in USDC.
15
- * - 'auto': Check POL balance — use self-funded if sufficient, otherwise erc20.
15
+ * - 'auto': Check ETH balance — use self-funded if sufficient, otherwise erc20.
16
16
  */
17
17
  async function resolveGasStrategy(strategy, publicClient, accountAddress) {
18
18
  if (strategy === 'self-funded' || strategy === 'erc20') {
@@ -66,9 +66,9 @@ export async function buildKernelClient(opts) {
66
66
  * Create a ZeroDev Kernel smart account (ERC-7579).
67
67
  *
68
68
  * Gas strategy:
69
- * - 'self-funded': Agent pays gas with native POL.
69
+ * - 'self-funded': Agent pays gas with native ETH.
70
70
  * - 'erc20': Agent pays gas in USDC via ZeroDev's ERC-20 paymaster.
71
- * - 'auto' (default): Checks POL balance — uses self-funded if >= 0.01 POL,
71
+ * - 'auto' (default): Checks ETH balance — uses self-funded if >= 0.01 ETH,
72
72
  * otherwise falls back to ERC-20 paymaster.
73
73
  *
74
74
  * Requires peer dependencies:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@abbababa/sdk",
3
- "version": "0.7.0",
3
+ "version": "1.0.0",
4
4
  "type": "module",
5
5
  "description": "TypeScript SDK for the Abbababa A2A Settlement Platform",
6
6
  "main": "dist/index.js",
@@ -18,34 +18,18 @@
18
18
  "scripts": {
19
19
  "build": "tsc -p tsconfig.json",
20
20
  "dev": "tsc -p tsconfig.json --watch",
21
- "type-check": "tsc --noEmit"
21
+ "type-check": "tsc --noEmit",
22
+ "test": "vitest run",
23
+ "test:unit": "vitest run",
24
+ "test:watch": "vitest",
25
+ "test:coverage": "vitest run --coverage",
26
+ "test:integration": "vitest run --config vitest.integration.config.ts"
22
27
  },
23
28
  "dependencies": {
24
- "viem": "^2.45.0",
25
- "@zerodev/ecdsa-validator": "^5.4.9",
26
- "@zerodev/permissions": "^5.6.0",
27
- "@zerodev/sdk": "^5.5.7",
28
- "permissionless": "^0.3.4"
29
- },
30
- "peerDependencies": {
31
- "@zerodev/ecdsa-validator": "^5.4.9",
32
- "@zerodev/permissions": "^5.6.0",
33
- "@zerodev/sdk": "^5.5.7",
34
- "permissionless": "^0.3.4"
35
- },
36
- "peerDependenciesMeta": {
37
- "@zerodev/sdk": {
38
- "optional": true
39
- },
40
- "@zerodev/ecdsa-validator": {
41
- "optional": true
42
- },
43
- "@zerodev/permissions": {
44
- "optional": true
45
- },
46
- "permissionless": {
47
- "optional": true
48
- }
29
+ "@noble/curves": "^1.8.1",
30
+ "@noble/hashes": "^1.7.2",
31
+ "semver": "^7.6.3",
32
+ "viem": "^2.45.0"
49
33
  },
50
34
  "files": [
51
35
  "dist"
@@ -69,10 +53,8 @@
69
53
  ],
70
54
  "devDependencies": {
71
55
  "@types/node": "^22.10.6",
72
- "@zerodev/ecdsa-validator": "^5.4.9",
73
- "@zerodev/permissions": "^5.6.0",
74
- "@zerodev/sdk": "^5.5.7",
75
- "permissionless": "^0.3.4",
76
- "typescript": "^5.7.3"
56
+ "@vitest/coverage-v8": "^4.0.18",
57
+ "typescript": "^5.7.3",
58
+ "vitest": "^4.0.18"
77
59
  }
78
60
  }