@abbababa/sdk 0.1.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 (70) hide show
  1. package/README.md +90 -0
  2. package/dist/buyer.d.ts +78 -0
  3. package/dist/buyer.d.ts.map +1 -0
  4. package/dist/buyer.js +146 -0
  5. package/dist/buyer.js.map +1 -0
  6. package/dist/checkout.d.ts +8 -0
  7. package/dist/checkout.d.ts.map +1 -0
  8. package/dist/checkout.js +10 -0
  9. package/dist/checkout.js.map +1 -0
  10. package/dist/client.d.ts +21 -0
  11. package/dist/client.d.ts.map +1 -0
  12. package/dist/client.js +103 -0
  13. package/dist/client.js.map +1 -0
  14. package/dist/errors.d.ts +22 -0
  15. package/dist/errors.d.ts.map +1 -0
  16. package/dist/errors.js +43 -0
  17. package/dist/errors.js.map +1 -0
  18. package/dist/index.d.ts +12 -0
  19. package/dist/index.d.ts.map +1 -0
  20. package/dist/index.js +16 -0
  21. package/dist/index.js.map +1 -0
  22. package/dist/register.d.ts +21 -0
  23. package/dist/register.d.ts.map +1 -0
  24. package/dist/register.js +37 -0
  25. package/dist/register.js.map +1 -0
  26. package/dist/seller.d.ts +20 -0
  27. package/dist/seller.d.ts.map +1 -0
  28. package/dist/seller.js +62 -0
  29. package/dist/seller.js.map +1 -0
  30. package/dist/services.d.ts +14 -0
  31. package/dist/services.d.ts.map +1 -0
  32. package/dist/services.js +39 -0
  33. package/dist/services.js.map +1 -0
  34. package/dist/transactions.d.ts +14 -0
  35. package/dist/transactions.d.ts.map +1 -0
  36. package/dist/transactions.js +35 -0
  37. package/dist/transactions.js.map +1 -0
  38. package/dist/types.d.ts +276 -0
  39. package/dist/types.d.ts.map +1 -0
  40. package/dist/types.js +5 -0
  41. package/dist/types.js.map +1 -0
  42. package/dist/wallet/abi.d.ts +265 -0
  43. package/dist/wallet/abi.d.ts.map +1 -0
  44. package/dist/wallet/abi.js +181 -0
  45. package/dist/wallet/abi.js.map +1 -0
  46. package/dist/wallet/constants.d.ts +29 -0
  47. package/dist/wallet/constants.d.ts.map +1 -0
  48. package/dist/wallet/constants.js +81 -0
  49. package/dist/wallet/constants.js.map +1 -0
  50. package/dist/wallet/escrow.d.ts +45 -0
  51. package/dist/wallet/escrow.d.ts.map +1 -0
  52. package/dist/wallet/escrow.js +184 -0
  53. package/dist/wallet/escrow.js.map +1 -0
  54. package/dist/wallet/index.d.ts +6 -0
  55. package/dist/wallet/index.d.ts.map +1 -0
  56. package/dist/wallet/index.js +17 -0
  57. package/dist/wallet/index.js.map +1 -0
  58. package/dist/wallet/session-keys.d.ts +58 -0
  59. package/dist/wallet/session-keys.d.ts.map +1 -0
  60. package/dist/wallet/session-keys.js +313 -0
  61. package/dist/wallet/session-keys.js.map +1 -0
  62. package/dist/wallet/smart-account.d.ts +30 -0
  63. package/dist/wallet/smart-account.d.ts.map +1 -0
  64. package/dist/wallet/smart-account.js +126 -0
  65. package/dist/wallet/smart-account.js.map +1 -0
  66. package/dist/webhook.d.ts +15 -0
  67. package/dist/webhook.d.ts.map +1 -0
  68. package/dist/webhook.js +62 -0
  69. package/dist/webhook.js.map +1 -0
  70. package/package.json +71 -0
@@ -0,0 +1,126 @@
1
+ import { createPublicClient, http, } from 'viem';
2
+ import { polygonAmoy, polygon, baseSepolia, base } from 'viem/chains';
3
+ import { ZERODEV_BUNDLER_URL, ZERODEV_PAYMASTER_URL, USDC_ADDRESSES, MIN_GAS_BALANCE, } from './constants.js';
4
+ const CHAINS = {
5
+ polygon,
6
+ polygonAmoy,
7
+ baseSepolia,
8
+ base,
9
+ };
10
+ /**
11
+ * Resolve the gas strategy for a kernel client.
12
+ *
13
+ * - 'self-funded': No paymaster — account pays gas with native POL.
14
+ * - 'erc20': ERC-20 paymaster — account pays gas in USDC.
15
+ * - 'auto': Check POL balance — use self-funded if sufficient, otherwise erc20.
16
+ */
17
+ async function resolveGasStrategy(strategy, publicClient, accountAddress) {
18
+ if (strategy === 'self-funded' || strategy === 'erc20') {
19
+ return strategy;
20
+ }
21
+ // 'auto' — check native balance
22
+ const balance = await publicClient.getBalance({
23
+ address: accountAddress,
24
+ });
25
+ return balance >= MIN_GAS_BALANCE ? 'self-funded' : 'erc20';
26
+ }
27
+ /**
28
+ * Build a kernel account client with the appropriate gas strategy.
29
+ *
30
+ * Shared by createSmartAccount() and session-keys.ts to avoid duplicating
31
+ * paymaster configuration logic.
32
+ */
33
+ export async function buildKernelClient(opts) {
34
+ const sdk = await import('@zerodev/sdk');
35
+ const { createKernelAccountClient, createZeroDevPaymasterClient } = sdk;
36
+ if (opts.gasStrategy === 'erc20') {
37
+ const usdcAddress = USDC_ADDRESSES[opts.chain.id];
38
+ if (!usdcAddress) {
39
+ throw new Error(`No USDC address configured for chain ${opts.chain.id}. Cannot use ERC-20 gas strategy.`);
40
+ }
41
+ const paymasterClient = createZeroDevPaymasterClient({
42
+ chain: opts.chain,
43
+ transport: http(opts.paymasterUrl),
44
+ });
45
+ return createKernelAccountClient({
46
+ account: opts.account,
47
+ chain: opts.chain,
48
+ bundlerTransport: http(opts.bundlerUrl),
49
+ paymaster: {
50
+ getPaymasterData: (userOperation) => paymasterClient.sponsorUserOperation({
51
+ userOperation,
52
+ gasToken: usdcAddress,
53
+ }),
54
+ },
55
+ });
56
+ }
57
+ // self-funded — no paymaster
58
+ return createKernelAccountClient({
59
+ account: opts.account,
60
+ chain: opts.chain,
61
+ bundlerTransport: http(opts.bundlerUrl),
62
+ });
63
+ }
64
+ /**
65
+ * Create a ZeroDev Kernel smart account (ERC-7579).
66
+ *
67
+ * Gas strategy:
68
+ * - 'self-funded': Agent pays gas with native POL.
69
+ * - 'erc20': Agent pays gas in USDC via ZeroDev's ERC-20 paymaster.
70
+ * - 'auto' (default): Checks POL balance — uses self-funded if >= 0.01 POL,
71
+ * otherwise falls back to ERC-20 paymaster.
72
+ *
73
+ * Requires peer dependencies:
74
+ * - @zerodev/sdk
75
+ * - @zerodev/ecdsa-validator
76
+ */
77
+ export async function createSmartAccount(config) {
78
+ // Dynamic imports — these are optional peer dependencies
79
+ const sdk = await import('@zerodev/sdk');
80
+ const { signerToEcdsaValidator } = await import('@zerodev/ecdsa-validator');
81
+ const { privateKeyToAccount } = await import('viem/accounts');
82
+ const { createKernelAccount, constants, } = sdk;
83
+ const chain = CHAINS[config.chain ?? 'polygonAmoy'];
84
+ if (!chain) {
85
+ throw new Error(`Unsupported chain: ${config.chain}`);
86
+ }
87
+ const entryPoint = constants.getEntryPoint('0.7');
88
+ const kernelVersion = constants.KERNEL_V3_1;
89
+ const bundlerUrl = `${ZERODEV_BUNDLER_URL}/${config.zeroDevProjectId}`;
90
+ const paymasterUrl = `${ZERODEV_PAYMASTER_URL}/${config.zeroDevProjectId}`;
91
+ // 1. Public client for chain reads
92
+ const publicClient = createPublicClient({
93
+ chain,
94
+ transport: http(),
95
+ });
96
+ // 2. Create the EOA signer from private key
97
+ const signer = privateKeyToAccount(config.privateKey);
98
+ // 3. Create ECDSA validator module
99
+ const ecdsaValidator = await signerToEcdsaValidator(publicClient, {
100
+ signer,
101
+ entryPoint,
102
+ kernelVersion,
103
+ });
104
+ // 4. Create the Kernel smart account (ERC-7579 modular)
105
+ const kernelAccount = await createKernelAccount(publicClient, {
106
+ plugins: { sudo: ecdsaValidator },
107
+ entryPoint,
108
+ kernelVersion,
109
+ });
110
+ // 5. Resolve gas strategy
111
+ const gasStrategy = await resolveGasStrategy(config.gasStrategy ?? 'auto', publicClient, kernelAccount.address);
112
+ // 6. Create the account client with resolved strategy
113
+ const kernelClient = await buildKernelClient({
114
+ account: kernelAccount,
115
+ chain,
116
+ bundlerUrl,
117
+ paymasterUrl,
118
+ gasStrategy,
119
+ });
120
+ return {
121
+ address: kernelAccount.address,
122
+ kernelClient,
123
+ gasStrategy,
124
+ };
125
+ }
126
+ //# sourceMappingURL=smart-account.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"smart-account.js","sourceRoot":"","sources":["../../src/wallet/smart-account.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import type { WebhookHandler } from './types.js';
2
+ export declare class WebhookServer {
3
+ private server;
4
+ private handler;
5
+ private path;
6
+ constructor(handler: WebhookHandler, options?: {
7
+ path?: string;
8
+ });
9
+ start(port: number): Promise<{
10
+ url: string;
11
+ port: number;
12
+ }>;
13
+ stop(): Promise<void>;
14
+ }
15
+ //# sourceMappingURL=webhook.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webhook.d.ts","sourceRoot":"","sources":["../src/webhook.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAgB,cAAc,EAAE,MAAM,YAAY,CAAA;AAE9D,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAA2B;IACzC,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,IAAI,CAAQ;gBAER,OAAO,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE;IAK1D,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IA0C3D,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAY5B"}
@@ -0,0 +1,62 @@
1
+ import * as http from 'node:http';
2
+ export class WebhookServer {
3
+ server = null;
4
+ handler;
5
+ path;
6
+ constructor(handler, options) {
7
+ this.handler = handler;
8
+ this.path = options?.path ?? '/webhook';
9
+ }
10
+ async start(port) {
11
+ return new Promise((resolve, reject) => {
12
+ this.server = http.createServer(async (req, res) => {
13
+ if (req.method !== 'POST' || req.url !== this.path) {
14
+ res.writeHead(404);
15
+ res.end('Not found');
16
+ return;
17
+ }
18
+ const chunks = [];
19
+ for await (const chunk of req) {
20
+ chunks.push(typeof chunk === 'string' ? Buffer.from(chunk) : chunk);
21
+ }
22
+ const body = Buffer.concat(chunks).toString('utf-8');
23
+ let event;
24
+ try {
25
+ event = JSON.parse(body);
26
+ }
27
+ catch {
28
+ res.writeHead(400, { 'Content-Type': 'application/json' });
29
+ res.end(JSON.stringify({ error: 'Invalid JSON' }));
30
+ return;
31
+ }
32
+ try {
33
+ await this.handler(event);
34
+ res.writeHead(200, { 'Content-Type': 'application/json' });
35
+ res.end(JSON.stringify({ received: true }));
36
+ }
37
+ catch (err) {
38
+ console.error('[WebhookServer] Handler error:', err);
39
+ res.writeHead(500, { 'Content-Type': 'application/json' });
40
+ res.end(JSON.stringify({ error: 'Handler failed' }));
41
+ }
42
+ });
43
+ this.server.on('error', reject);
44
+ this.server.listen(port, () => {
45
+ resolve({ url: `http://localhost:${port}${this.path}`, port });
46
+ });
47
+ });
48
+ }
49
+ async stop() {
50
+ return new Promise((resolve) => {
51
+ if (!this.server) {
52
+ resolve();
53
+ return;
54
+ }
55
+ this.server.close(() => {
56
+ this.server = null;
57
+ resolve();
58
+ });
59
+ });
60
+ }
61
+ }
62
+ //# sourceMappingURL=webhook.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webhook.js","sourceRoot":"","sources":["../src/webhook.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,71 @@
1
+ {
2
+ "name": "@abbababa/sdk",
3
+ "version": "0.1.0",
4
+ "description": "TypeScript SDK for the Abbababa A2A Settlement Platform",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "exports": {
8
+ ".": {
9
+ "import": "./dist/index.js",
10
+ "types": "./dist/index.d.ts"
11
+ },
12
+ "./wallet": {
13
+ "import": "./dist/wallet/index.js",
14
+ "types": "./dist/wallet/index.d.ts"
15
+ }
16
+ },
17
+ "scripts": {
18
+ "build": "tsc -p tsconfig.json",
19
+ "dev": "tsc -p tsconfig.json --watch",
20
+ "type-check": "tsc --noEmit"
21
+ },
22
+ "dependencies": {
23
+ "viem": "^2.45.0"
24
+ },
25
+ "peerDependencies": {
26
+ "@zerodev/ecdsa-validator": "^5.4.9",
27
+ "@zerodev/permissions": "^5.6.0",
28
+ "@zerodev/sdk": "^5.5.7",
29
+ "permissionless": "^0.3.4"
30
+ },
31
+ "peerDependenciesMeta": {
32
+ "@zerodev/sdk": {
33
+ "optional": true
34
+ },
35
+ "@zerodev/ecdsa-validator": {
36
+ "optional": true
37
+ },
38
+ "@zerodev/permissions": {
39
+ "optional": true
40
+ },
41
+ "permissionless": {
42
+ "optional": true
43
+ }
44
+ },
45
+ "files": [
46
+ "dist"
47
+ ],
48
+ "license": "MIT",
49
+ "repository": {
50
+ "type": "git",
51
+ "url": "https://github.com/abbababa/abbababa-platform",
52
+ "directory": "packages/sdk"
53
+ },
54
+ "homepage": "https://abbababa.com/docs/sdk",
55
+ "keywords": [
56
+ "a2a",
57
+ "agent",
58
+ "commerce",
59
+ "escrow",
60
+ "polygon",
61
+ "usdc",
62
+ "settlement",
63
+ "mcp"
64
+ ],
65
+ "devDependencies": {
66
+ "@zerodev/ecdsa-validator": "^5.4.9",
67
+ "@zerodev/permissions": "^5.6.0",
68
+ "@zerodev/sdk": "^5.5.7",
69
+ "permissionless": "^0.3.4"
70
+ }
71
+ }