@abbababa/sdk 0.1.0 → 0.2.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 +47 -9
- package/dist/buyer.d.ts +26 -11
- package/dist/buyer.d.ts.map +1 -1
- package/dist/buyer.js +48 -15
- package/dist/buyer.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/seller.d.ts +30 -2
- package/dist/seller.d.ts.map +1 -1
- package/dist/seller.js +66 -1
- package/dist/seller.js.map +1 -1
- package/dist/types.d.ts +34 -9
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +21 -1
- package/dist/types.js.map +1 -1
- package/dist/wallet/abi.d.ts +87 -81
- package/dist/wallet/abi.d.ts.map +1 -1
- package/dist/wallet/abi.js +59 -59
- package/dist/wallet/abi.js.map +1 -1
- package/dist/wallet/constants.d.ts +4 -8
- package/dist/wallet/constants.d.ts.map +1 -1
- package/dist/wallet/constants.js +7 -20
- package/dist/wallet/constants.js.map +1 -1
- package/dist/wallet/escrow.d.ts +62 -15
- package/dist/wallet/escrow.d.ts.map +1 -1
- package/dist/wallet/escrow.js +219 -85
- package/dist/wallet/escrow.js.map +1 -1
- package/dist/wallet/index.d.ts +2 -2
- package/dist/wallet/index.d.ts.map +1 -1
- package/dist/wallet/index.js +4 -8
- package/dist/wallet/index.js.map +1 -1
- package/dist/wallet/session-keys.d.ts +9 -6
- package/dist/wallet/session-keys.d.ts.map +1 -1
- package/dist/wallet/session-keys.js +53 -54
- package/dist/wallet/session-keys.js.map +1 -1
- package/dist/wallet/smart-account.d.ts.map +1 -1
- package/dist/wallet/smart-account.js +5 -4
- package/dist/wallet/smart-account.js.map +1 -1
- package/package.json +2 -1
|
@@ -1,20 +1,25 @@
|
|
|
1
1
|
import { createPublicClient, http, } from 'viem';
|
|
2
|
-
import { polygonAmoy, polygon } from 'viem/chains';
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
2
|
+
import { polygonAmoy, polygon, baseSepolia, base } from 'viem/chains';
|
|
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';
|
|
5
5
|
import { buildKernelClient } from './smart-account.js';
|
|
6
6
|
const CHAINS = {
|
|
7
7
|
polygon,
|
|
8
8
|
polygonAmoy,
|
|
9
|
+
baseSepolia,
|
|
10
|
+
base,
|
|
9
11
|
};
|
|
10
12
|
const DEFAULT_VALIDITY_SECONDS = 86400; // 24 hours
|
|
11
13
|
/**
|
|
12
|
-
* Build escrow-scoped policies for a session key.
|
|
14
|
+
* Build escrow-scoped policies for a session key (V4).
|
|
13
15
|
*
|
|
14
|
-
* Creates a CallPolicy restricted to escrow operations:
|
|
15
|
-
* 1. ERC20.approve for each allowed token (spender must equal escrow contract)
|
|
16
|
-
* 2. Escrow.createEscrow (
|
|
17
|
-
* 3. Escrow.
|
|
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)
|
|
19
|
+
* 3. Escrow.submitDelivery
|
|
20
|
+
* 4. Escrow.accept
|
|
21
|
+
* 5. Escrow.finalizeRelease
|
|
22
|
+
* 6. Escrow.dispute
|
|
18
23
|
*
|
|
19
24
|
* Plus a TimestampPolicy for time-bound expiration.
|
|
20
25
|
*
|
|
@@ -23,17 +28,14 @@ const DEFAULT_VALIDITY_SECONDS = 86400; // 24 hours
|
|
|
23
28
|
* Requires @zerodev/permissions as a peer dependency.
|
|
24
29
|
*/
|
|
25
30
|
export async function buildEscrowPolicies(config) {
|
|
26
|
-
const chainId = config.chainId ??
|
|
31
|
+
const chainId = config.chainId ?? BASE_SEPOLIA_CHAIN_ID;
|
|
27
32
|
const validitySeconds = config.validitySeconds ?? DEFAULT_VALIDITY_SECONDS;
|
|
28
33
|
const { toCallPolicy, CallPolicyVersion, ParamCondition } = await import('@zerodev/permissions/policies');
|
|
29
34
|
const { toTimestampPolicy } = await import('@zerodev/permissions/policies');
|
|
30
|
-
// Resolve escrow contract
|
|
31
|
-
const
|
|
32
|
-
const v2Address = ESCROW_V2_ADDRESSES[chainId];
|
|
33
|
-
const escrowAddress = v3Address ?? v2Address;
|
|
35
|
+
// Resolve V4 escrow contract
|
|
36
|
+
const escrowAddress = ESCROW_V4_ADDRESSES[chainId];
|
|
34
37
|
if (!escrowAddress)
|
|
35
|
-
throw new Error(`No escrow contract for chain ${chainId}`);
|
|
36
|
-
const isV3 = !!v3Address;
|
|
38
|
+
throw new Error(`No V4 escrow contract for chain ${chainId}`);
|
|
37
39
|
// Resolve tokens to allow
|
|
38
40
|
const registry = TOKEN_REGISTRY[chainId] ?? {};
|
|
39
41
|
const tokenSymbols = config.tokens ?? Object.keys(registry);
|
|
@@ -43,16 +45,10 @@ export async function buildEscrowPolicies(config) {
|
|
|
43
45
|
if (info)
|
|
44
46
|
tokenAddresses.push(info.address);
|
|
45
47
|
}
|
|
46
|
-
// Fallback: if no tokens resolved, use USDC
|
|
47
|
-
if (tokenAddresses.length === 0) {
|
|
48
|
-
const usdc = USDC_ADDRESSES[chainId];
|
|
49
|
-
if (usdc)
|
|
50
|
-
tokenAddresses.push(usdc);
|
|
51
|
-
}
|
|
52
48
|
if (tokenAddresses.length === 0) {
|
|
53
49
|
throw new Error(`No token addresses for chain ${chainId}`);
|
|
54
50
|
}
|
|
55
|
-
// Build permissions: one approve entry per token + escrow operations
|
|
51
|
+
// Build permissions: one approve entry per token + V4 escrow operations
|
|
56
52
|
const permissions = [];
|
|
57
53
|
for (const tokenAddr of tokenAddresses) {
|
|
58
54
|
permissions.push({
|
|
@@ -68,34 +64,37 @@ export async function buildEscrowPolicies(config) {
|
|
|
68
64
|
],
|
|
69
65
|
});
|
|
70
66
|
}
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
67
|
+
// V4 escrow operations
|
|
68
|
+
permissions.push({
|
|
69
|
+
target: escrowAddress,
|
|
70
|
+
abi: ABBABABA_ESCROW_ABI,
|
|
71
|
+
functionName: 'createEscrow',
|
|
72
|
+
args: [null, null, null, null, null], // escrowId, seller, amount, token, deadline
|
|
73
|
+
});
|
|
74
|
+
permissions.push({
|
|
75
|
+
target: escrowAddress,
|
|
76
|
+
abi: ABBABABA_ESCROW_ABI,
|
|
77
|
+
functionName: 'submitDelivery',
|
|
78
|
+
args: [null, null], // escrowId, proofHash
|
|
79
|
+
});
|
|
80
|
+
permissions.push({
|
|
81
|
+
target: escrowAddress,
|
|
82
|
+
abi: ABBABABA_ESCROW_ABI,
|
|
83
|
+
functionName: 'accept',
|
|
84
|
+
args: [null], // escrowId
|
|
85
|
+
});
|
|
86
|
+
permissions.push({
|
|
87
|
+
target: escrowAddress,
|
|
88
|
+
abi: ABBABABA_ESCROW_ABI,
|
|
89
|
+
functionName: 'finalizeRelease',
|
|
90
|
+
args: [null], // escrowId
|
|
91
|
+
});
|
|
92
|
+
permissions.push({
|
|
93
|
+
target: escrowAddress,
|
|
94
|
+
abi: ABBABABA_ESCROW_ABI,
|
|
95
|
+
functionName: 'dispute',
|
|
96
|
+
args: [null], // escrowId
|
|
97
|
+
});
|
|
99
98
|
const callPolicy = toCallPolicy({
|
|
100
99
|
policyVersion: CallPolicyVersion.V0_0_4,
|
|
101
100
|
permissions,
|
|
@@ -110,7 +109,7 @@ export async function buildEscrowPolicies(config) {
|
|
|
110
109
|
* Generate a scoped session key for an agent (owner operation).
|
|
111
110
|
*
|
|
112
111
|
* The owner calls this with their private key. A random session key is generated,
|
|
113
|
-
* scoped to escrow operations via CallPolicy + TimestampPolicy, and serialized
|
|
112
|
+
* scoped to V4 escrow operations via CallPolicy + TimestampPolicy, and serialized
|
|
114
113
|
* into a single string that can be passed to the agent.
|
|
115
114
|
*
|
|
116
115
|
* Requires peer dependencies:
|
|
@@ -126,7 +125,7 @@ export async function generateSessionKey(config) {
|
|
|
126
125
|
const { toPermissionValidator, serializePermissionAccount } = await import('@zerodev/permissions');
|
|
127
126
|
const { toEmptyECDSASigner } = await import('@zerodev/permissions/signers');
|
|
128
127
|
const { createKernelAccount, createZeroDevPaymasterClient, constants, } = sdk;
|
|
129
|
-
const chain = CHAINS[config.chain ?? '
|
|
128
|
+
const chain = CHAINS[config.chain ?? 'baseSepolia'];
|
|
130
129
|
if (!chain)
|
|
131
130
|
throw new Error(`Unsupported chain: ${config.chain}`);
|
|
132
131
|
const entryPoint = constants.getEntryPoint('0.7');
|
|
@@ -199,7 +198,7 @@ export async function useSessionKey(config) {
|
|
|
199
198
|
const sdk = await import('@zerodev/sdk');
|
|
200
199
|
const { deserializePermissionAccount } = await import('@zerodev/permissions');
|
|
201
200
|
const { constants } = sdk;
|
|
202
|
-
const chain = CHAINS[config.chain ?? '
|
|
201
|
+
const chain = CHAINS[config.chain ?? 'baseSepolia'];
|
|
203
202
|
if (!chain)
|
|
204
203
|
throw new Error(`Unsupported chain: ${config.chain}`);
|
|
205
204
|
const entryPoint = constants.getEntryPoint('0.7');
|
|
@@ -257,7 +256,7 @@ export async function revokeSessionKey(config) {
|
|
|
257
256
|
const { privateKeyToAccount } = await import('viem/accounts');
|
|
258
257
|
const { deserializePermissionAccount } = await import('@zerodev/permissions');
|
|
259
258
|
const { createKernelAccount, constants, } = sdk;
|
|
260
|
-
const chain = CHAINS[config.chain ?? '
|
|
259
|
+
const chain = CHAINS[config.chain ?? 'baseSepolia'];
|
|
261
260
|
if (!chain)
|
|
262
261
|
throw new Error(`Unsupported chain: ${config.chain}`);
|
|
263
262
|
const entryPoint = constants.getEntryPoint('0.7');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-keys.js","sourceRoot":"","sources":["../../src/wallet/session-keys.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,IAAI,GAIL,MAAM,MAAM,CAAA;AACb,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"session-keys.js","sourceRoot":"","sources":["../../src/wallet/session-keys.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"smart-account.d.ts","sourceRoot":"","sources":["../../src/wallet/smart-account.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,KAAK,EACX,MAAM,MAAM,CAAA;AAEb,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAe,MAAM,aAAa,CAAA;AAsCtF;;;;;GAKG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE;IAC5C,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,KAAK,CAAA;IACZ,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,MAAM,CAAA;IACpB,WAAW,EAAE,aAAa,GAAG,OAAO,CAAA;CACrC,GAAG,OAAO,CAAC,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"smart-account.d.ts","sourceRoot":"","sources":["../../src/wallet/smart-account.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,KAAK,EACX,MAAM,MAAM,CAAA;AAEb,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAe,MAAM,aAAa,CAAA;AAsCtF;;;;;GAKG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE;IAC5C,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,KAAK,CAAA;IACZ,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,MAAM,CAAA;IACpB,WAAW,EAAE,aAAa,GAAG,OAAO,CAAA;CACrC,GAAG,OAAO,CAAC,OAAO,CAAC,CAsCnB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,kBAAkB,GACzB,OAAO,CAAC,kBAAkB,CAAC,CAkE7B"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createPublicClient, http, } from 'viem';
|
|
2
2
|
import { polygonAmoy, polygon, baseSepolia, base } from 'viem/chains';
|
|
3
|
-
import { ZERODEV_BUNDLER_URL, ZERODEV_PAYMASTER_URL,
|
|
3
|
+
import { ZERODEV_BUNDLER_URL, ZERODEV_PAYMASTER_URL, getToken, MIN_GAS_BALANCE, } from './constants.js';
|
|
4
4
|
const CHAINS = {
|
|
5
5
|
polygon,
|
|
6
6
|
polygonAmoy,
|
|
@@ -34,10 +34,11 @@ export async function buildKernelClient(opts) {
|
|
|
34
34
|
const sdk = await import('@zerodev/sdk');
|
|
35
35
|
const { createKernelAccountClient, createZeroDevPaymasterClient } = sdk;
|
|
36
36
|
if (opts.gasStrategy === 'erc20') {
|
|
37
|
-
const
|
|
38
|
-
if (!
|
|
37
|
+
const usdcToken = getToken(opts.chain.id, 'USDC');
|
|
38
|
+
if (!usdcToken) {
|
|
39
39
|
throw new Error(`No USDC address configured for chain ${opts.chain.id}. Cannot use ERC-20 gas strategy.`);
|
|
40
40
|
}
|
|
41
|
+
const usdcAddress = usdcToken.address;
|
|
41
42
|
const paymasterClient = createZeroDevPaymasterClient({
|
|
42
43
|
chain: opts.chain,
|
|
43
44
|
transport: http(opts.paymasterUrl),
|
|
@@ -80,7 +81,7 @@ export async function createSmartAccount(config) {
|
|
|
80
81
|
const { signerToEcdsaValidator } = await import('@zerodev/ecdsa-validator');
|
|
81
82
|
const { privateKeyToAccount } = await import('viem/accounts');
|
|
82
83
|
const { createKernelAccount, constants, } = sdk;
|
|
83
|
-
const chain = CHAINS[config.chain ?? '
|
|
84
|
+
const chain = CHAINS[config.chain ?? 'baseSepolia'];
|
|
84
85
|
if (!chain) {
|
|
85
86
|
throw new Error(`Unsupported chain: ${config.chain}`);
|
|
86
87
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"smart-account.js","sourceRoot":"","sources":["../../src/wallet/smart-account.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,IAAI,GAGL,MAAM,MAAM,CAAA;AACb,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAErE,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,
|
|
1
|
+
{"version":3,"file":"smart-account.js","sourceRoot":"","sources":["../../src/wallet/smart-account.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@abbababa/sdk",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "TypeScript SDK for the Abbababa A2A Settlement Platform",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -57,6 +57,7 @@
|
|
|
57
57
|
"agent",
|
|
58
58
|
"commerce",
|
|
59
59
|
"escrow",
|
|
60
|
+
"base",
|
|
60
61
|
"polygon",
|
|
61
62
|
"usdc",
|
|
62
63
|
"settlement",
|