@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.
- package/README.md +90 -0
- package/dist/buyer.d.ts +78 -0
- package/dist/buyer.d.ts.map +1 -0
- package/dist/buyer.js +146 -0
- package/dist/buyer.js.map +1 -0
- package/dist/checkout.d.ts +8 -0
- package/dist/checkout.d.ts.map +1 -0
- package/dist/checkout.js +10 -0
- package/dist/checkout.js.map +1 -0
- package/dist/client.d.ts +21 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +103 -0
- package/dist/client.js.map +1 -0
- package/dist/errors.d.ts +22 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +43 -0
- package/dist/errors.js.map +1 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +16 -0
- package/dist/index.js.map +1 -0
- package/dist/register.d.ts +21 -0
- package/dist/register.d.ts.map +1 -0
- package/dist/register.js +37 -0
- package/dist/register.js.map +1 -0
- package/dist/seller.d.ts +20 -0
- package/dist/seller.d.ts.map +1 -0
- package/dist/seller.js +62 -0
- package/dist/seller.js.map +1 -0
- package/dist/services.d.ts +14 -0
- package/dist/services.d.ts.map +1 -0
- package/dist/services.js +39 -0
- package/dist/services.js.map +1 -0
- package/dist/transactions.d.ts +14 -0
- package/dist/transactions.d.ts.map +1 -0
- package/dist/transactions.js +35 -0
- package/dist/transactions.js.map +1 -0
- package/dist/types.d.ts +276 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +5 -0
- package/dist/types.js.map +1 -0
- package/dist/wallet/abi.d.ts +265 -0
- package/dist/wallet/abi.d.ts.map +1 -0
- package/dist/wallet/abi.js +181 -0
- package/dist/wallet/abi.js.map +1 -0
- package/dist/wallet/constants.d.ts +29 -0
- package/dist/wallet/constants.d.ts.map +1 -0
- package/dist/wallet/constants.js +81 -0
- package/dist/wallet/constants.js.map +1 -0
- package/dist/wallet/escrow.d.ts +45 -0
- package/dist/wallet/escrow.d.ts.map +1 -0
- package/dist/wallet/escrow.js +184 -0
- package/dist/wallet/escrow.js.map +1 -0
- package/dist/wallet/index.d.ts +6 -0
- package/dist/wallet/index.d.ts.map +1 -0
- package/dist/wallet/index.js +17 -0
- package/dist/wallet/index.js.map +1 -0
- package/dist/wallet/session-keys.d.ts +58 -0
- package/dist/wallet/session-keys.d.ts.map +1 -0
- package/dist/wallet/session-keys.js +313 -0
- package/dist/wallet/session-keys.js.map +1 -0
- package/dist/wallet/smart-account.d.ts +30 -0
- package/dist/wallet/smart-account.d.ts.map +1 -0
- package/dist/wallet/smart-account.js +126 -0
- package/dist/wallet/smart-account.js.map +1 -0
- package/dist/webhook.d.ts +15 -0
- package/dist/webhook.d.ts.map +1 -0
- package/dist/webhook.js +62 -0
- package/dist/webhook.js.map +1 -0
- 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"}
|
package/dist/webhook.js
ADDED
|
@@ -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
|
+
}
|