@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.
- package/README.md +178 -60
- package/dist/agents.d.ts +15 -4
- package/dist/agents.d.ts.map +1 -1
- package/dist/agents.js +14 -1
- package/dist/agents.js.map +1 -1
- package/dist/buyer.d.ts +136 -25
- package/dist/buyer.d.ts.map +1 -1
- package/dist/buyer.js +277 -45
- package/dist/buyer.js.map +1 -1
- package/dist/channels.d.ts +2 -2
- package/dist/channels.d.ts.map +1 -1
- package/dist/channels.js.map +1 -1
- package/dist/checkout.d.ts +2 -2
- package/dist/checkout.d.ts.map +1 -1
- package/dist/checkout.js.map +1 -1
- package/dist/client.d.ts +3 -3
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +7 -6
- package/dist/client.js.map +1 -1
- package/dist/crypto.d.ts +93 -0
- package/dist/crypto.d.ts.map +1 -0
- package/dist/crypto.js +298 -0
- package/dist/crypto.js.map +1 -0
- package/dist/errors.d.ts +7 -7
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +8 -8
- package/dist/errors.js.map +1 -1
- package/dist/index.d.ts +9 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -2
- package/dist/index.js.map +1 -1
- package/dist/memory.d.ts +2 -2
- package/dist/memory.d.ts.map +1 -1
- package/dist/memory.js.map +1 -1
- package/dist/messages.d.ts +27 -3
- package/dist/messages.d.ts.map +1 -1
- package/dist/messages.js +35 -0
- package/dist/messages.js.map +1 -1
- package/dist/register.d.ts +0 -1
- package/dist/register.d.ts.map +1 -1
- package/dist/register.js +3 -4
- package/dist/register.js.map +1 -1
- package/dist/seller.d.ts +102 -22
- package/dist/seller.d.ts.map +1 -1
- package/dist/seller.js +190 -45
- package/dist/seller.js.map +1 -1
- package/dist/services.d.ts +2 -2
- package/dist/services.d.ts.map +1 -1
- package/dist/services.js.map +1 -1
- package/dist/transactions.d.ts +2 -2
- package/dist/transactions.d.ts.map +1 -1
- package/dist/transactions.js.map +1 -1
- package/dist/types.d.ts +131 -57
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/wallet/abi.d.ts +15 -0
- package/dist/wallet/abi.d.ts.map +1 -1
- package/dist/wallet/abi.js +18 -8
- package/dist/wallet/abi.js.map +1 -1
- package/dist/wallet/constants.d.ts +8 -6
- package/dist/wallet/constants.d.ts.map +1 -1
- package/dist/wallet/constants.js +38 -23
- package/dist/wallet/constants.js.map +1 -1
- package/dist/wallet/eoa-wallet.d.ts +21 -0
- package/dist/wallet/eoa-wallet.d.ts.map +1 -0
- package/dist/wallet/eoa-wallet.js +37 -0
- package/dist/wallet/eoa-wallet.js.map +1 -0
- package/dist/wallet/escrow.d.ts +38 -8
- package/dist/wallet/escrow.d.ts.map +1 -1
- package/dist/wallet/escrow.js +71 -18
- package/dist/wallet/escrow.js.map +1 -1
- package/dist/wallet/index.d.ts +0 -2
- package/dist/wallet/index.d.ts.map +1 -1
- package/dist/wallet/index.js +0 -2
- package/dist/wallet/index.js.map +1 -1
- package/dist/wallet/session-key.d.ts +71 -0
- package/dist/wallet/session-key.d.ts.map +1 -0
- package/dist/wallet/session-key.js +82 -0
- package/dist/wallet/session-key.js.map +1 -0
- package/dist/wallet/session-keys.js +8 -8
- package/dist/wallet/smart-account.d.ts +2 -2
- package/dist/wallet/smart-account.js +4 -4
- 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 {
|
|
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 (
|
|
14
|
+
* Build escrow-scoped policies for a session key (V2).
|
|
15
15
|
*
|
|
16
|
-
* Creates a CallPolicy restricted to
|
|
17
|
-
* 1. ERC20.approve for each allowed token (spender must equal
|
|
18
|
-
* 2. Escrow.createEscrow (
|
|
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
|
|
37
|
-
const escrowAddress =
|
|
36
|
+
// Resolve V2 escrow contract
|
|
37
|
+
const escrowAddress = ESCROW_V2_ADDRESSES[chainId];
|
|
38
38
|
if (!escrowAddress)
|
|
39
|
-
throw new Error(`No
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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.
|
|
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
|
-
"
|
|
25
|
-
"@
|
|
26
|
-
"
|
|
27
|
-
"
|
|
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
|
-
"@
|
|
73
|
-
"
|
|
74
|
-
"
|
|
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
|
}
|