@agenticprimitives/agent-account 1.0.0-alpha.7 → 1.0.0-alpha.9
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/dist/erc20.d.ts +27 -0
- package/dist/erc20.d.ts.map +1 -0
- package/dist/erc20.js +41 -0
- package/dist/erc20.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
package/dist/erc20.d.ts
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { type Address } from 'viem';
|
|
2
|
+
import type { ContractCall } from './execute';
|
|
3
|
+
declare const ERC20_BALANCE_ABI: readonly [{
|
|
4
|
+
readonly type: "function";
|
|
5
|
+
readonly name: "balanceOf";
|
|
6
|
+
readonly stateMutability: "view";
|
|
7
|
+
readonly inputs: readonly [{
|
|
8
|
+
readonly name: "owner";
|
|
9
|
+
readonly type: "address";
|
|
10
|
+
}];
|
|
11
|
+
readonly outputs: readonly [{
|
|
12
|
+
readonly type: "uint256";
|
|
13
|
+
}];
|
|
14
|
+
}];
|
|
15
|
+
/** Build a `{ to: token, value: 0, data: transfer(to, amount) }` call — the payer leg of an x402 charge.
|
|
16
|
+
* For a direct UserOp wrap with `buildExecuteCallData`; for x402 it rides the gated `redeemDelegation`. */
|
|
17
|
+
export declare function buildErc20TransferCall(token: Address, to: Address, amount: bigint): ContractCall;
|
|
18
|
+
/** Read an ERC-20 balance (e.g. a treasury AgentAccount's USDC). `readContract` is a `(addr, abi, fn,
|
|
19
|
+
* args) => Promise<unknown>` — viem's `publicClient.readContract` fits directly. */
|
|
20
|
+
export declare function readErc20Balance(readContract: (args: {
|
|
21
|
+
address: Address;
|
|
22
|
+
abi: typeof ERC20_BALANCE_ABI;
|
|
23
|
+
functionName: 'balanceOf';
|
|
24
|
+
args: [Address];
|
|
25
|
+
}) => Promise<unknown>, token: Address, owner: Address): Promise<bigint>;
|
|
26
|
+
export {};
|
|
27
|
+
//# sourceMappingURL=erc20.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"erc20.d.ts","sourceRoot":"","sources":["../src/erc20.ts"],"names":[],"mappings":"AAIA,OAAO,EAAsB,KAAK,OAAO,EAAE,MAAM,MAAM,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAe9C,QAAA,MAAM,iBAAiB;;;;;;;;;;;EAQb,CAAC;AAEX;4GAC4G;AAC5G,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,YAAY,CAMhG;AAED;qFACqF;AACrF,wBAAsB,gBAAgB,CACpC,YAAY,EAAE,CAAC,IAAI,EAAE;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,GAAG,EAAE,OAAO,iBAAiB,CAAC;IAAC,YAAY,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,CAAC,OAAO,CAAC,CAAA;CAAE,KAAK,OAAO,CAAC,OAAO,CAAC,EACzI,KAAK,EAAE,OAAO,EACd,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,MAAM,CAAC,CAGjB"}
|
package/dist/erc20.js
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
// Spec 272 PAY-ACCT-1/2 — tiny ERC-20 helpers for the x402 treasury + payer paths. The payer transfer
|
|
2
|
+
// is a `ContractCall` (wrap with buildExecuteCallData for a UserOp, OR feed to a delegation redemption);
|
|
3
|
+
// the treasury is a plain AgentAccount, so reading its balance is a generic balanceOf.
|
|
4
|
+
import { encodeFunctionData } from 'viem';
|
|
5
|
+
const ERC20_TRANSFER_ABI = [
|
|
6
|
+
{
|
|
7
|
+
type: 'function',
|
|
8
|
+
name: 'transfer',
|
|
9
|
+
stateMutability: 'nonpayable',
|
|
10
|
+
inputs: [
|
|
11
|
+
{ name: 'to', type: 'address' },
|
|
12
|
+
{ name: 'amount', type: 'uint256' },
|
|
13
|
+
],
|
|
14
|
+
outputs: [{ type: 'bool' }],
|
|
15
|
+
},
|
|
16
|
+
];
|
|
17
|
+
const ERC20_BALANCE_ABI = [
|
|
18
|
+
{
|
|
19
|
+
type: 'function',
|
|
20
|
+
name: 'balanceOf',
|
|
21
|
+
stateMutability: 'view',
|
|
22
|
+
inputs: [{ name: 'owner', type: 'address' }],
|
|
23
|
+
outputs: [{ type: 'uint256' }],
|
|
24
|
+
},
|
|
25
|
+
];
|
|
26
|
+
/** Build a `{ to: token, value: 0, data: transfer(to, amount) }` call — the payer leg of an x402 charge.
|
|
27
|
+
* For a direct UserOp wrap with `buildExecuteCallData`; for x402 it rides the gated `redeemDelegation`. */
|
|
28
|
+
export function buildErc20TransferCall(token, to, amount) {
|
|
29
|
+
return {
|
|
30
|
+
to: token,
|
|
31
|
+
value: 0n,
|
|
32
|
+
data: encodeFunctionData({ abi: ERC20_TRANSFER_ABI, functionName: 'transfer', args: [to, amount] }),
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
/** Read an ERC-20 balance (e.g. a treasury AgentAccount's USDC). `readContract` is a `(addr, abi, fn,
|
|
36
|
+
* args) => Promise<unknown>` — viem's `publicClient.readContract` fits directly. */
|
|
37
|
+
export async function readErc20Balance(readContract, token, owner) {
|
|
38
|
+
const out = await readContract({ address: token, abi: ERC20_BALANCE_ABI, functionName: 'balanceOf', args: [owner] });
|
|
39
|
+
return out;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=erc20.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"erc20.js","sourceRoot":"","sources":["../src/erc20.ts"],"names":[],"mappings":"AAAA,sGAAsG;AACtG,yGAAyG;AACzG,uFAAuF;AAEvF,OAAO,EAAE,kBAAkB,EAAgB,MAAM,MAAM,CAAC;AAGxD,MAAM,kBAAkB,GAAG;IACzB;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,UAAU;QAChB,eAAe,EAAE,YAAY;QAC7B,MAAM,EAAE;YACN,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE;YAC/B,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE;SACpC;QACD,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;KAC5B;CACO,CAAC;AAEX,MAAM,iBAAiB,GAAG;IACxB;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,WAAW;QACjB,eAAe,EAAE,MAAM;QACvB,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAC5C,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;KAC/B;CACO,CAAC;AAEX;4GAC4G;AAC5G,MAAM,UAAU,sBAAsB,CAAC,KAAc,EAAE,EAAW,EAAE,MAAc;IAChF,OAAO;QACL,EAAE,EAAE,KAAK;QACT,KAAK,EAAE,EAAE;QACT,IAAI,EAAE,kBAAkB,CAAC,EAAE,GAAG,EAAE,kBAAkB,EAAE,YAAY,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC;KACpG,CAAC;AACJ,CAAC;AAED;qFACqF;AACrF,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,YAAyI,EACzI,KAAc,EACd,KAAc;IAEd,MAAM,GAAG,GAAG,MAAM,YAAY,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,iBAAiB,EAAE,YAAY,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACrH,OAAO,GAAa,CAAC;AACvB,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ export { AgentAccountClient, SaMismatchError } from './client';
|
|
|
2
2
|
export type { AgentAccountClientOpts, AgentAccountSpec } from './client';
|
|
3
3
|
export type { UserOperation, Address, Hex } from './types';
|
|
4
4
|
export { buildExecuteCallData, buildExecuteBatchCallData, type ContractCall } from './execute';
|
|
5
|
+
export { buildErc20TransferCall, readErc20Balance } from './erc20';
|
|
5
6
|
export { BundlerClient, packGasLimits, unpackGasLimits } from './bundler-client';
|
|
6
7
|
export type { BundlerClientOpts, PackedUserOperation } from './bundler-client';
|
|
7
8
|
export { agentAccountAbi, agentAccountFactoryAbi, approvedHashRegistryAbi, entryPointAbi, } from './abis';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC/D,YAAY,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AACzE,YAAY,EAAE,aAAa,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,SAAS,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,KAAK,YAAY,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC/D,YAAY,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AACzE,YAAY,EAAE,aAAa,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,SAAS,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,KAAK,YAAY,EAAE,MAAM,WAAW,CAAC;AAE/F,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACjF,YAAY,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC/E,OAAO,EACL,eAAe,EACf,sBAAsB,EACtB,uBAAuB,EACvB,aAAa,GACd,MAAM,QAAQ,CAAC;AAIhB,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,UAAU,CAAC;AAClB,YAAY,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAOlD,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,uBAAuB,GACxB,MAAM,sBAAsB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -3,6 +3,8 @@
|
|
|
3
3
|
// See ../../specs/201-agent-account.md for the full contract.
|
|
4
4
|
export { AgentAccountClient, SaMismatchError } from './client';
|
|
5
5
|
export { buildExecuteCallData, buildExecuteBatchCallData } from './execute';
|
|
6
|
+
// Spec 272 PAY-ACCT-1/2 — x402 treasury + payer ERC-20 helpers.
|
|
7
|
+
export { buildErc20TransferCall, readErc20Balance } from './erc20';
|
|
6
8
|
export { BundlerClient, packGasLimits, unpackGasLimits } from './bundler-client';
|
|
7
9
|
export { agentAccountAbi, agentAccountFactoryAbi, approvedHashRegistryAbi, entryPointAbi, } from './abis';
|
|
8
10
|
// custodyPolicyAbi moved to @agenticprimitives/account-custody (spec 213 § 2.6).
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,EAAE;AACF,8DAA8D;AAE9D,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAG/D,OAAO,EAAE,oBAAoB,EAAE,yBAAyB,EAAqB,MAAM,WAAW,CAAC;AAC/F,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEjF,OAAO,EACL,eAAe,EACf,sBAAsB,EACtB,uBAAuB,EACvB,aAAa,GACd,MAAM,QAAQ,CAAC;AAChB,iFAAiF;AAEjF,yDAAyD;AACzD,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,UAAU,CAAC;AAGlB,sDAAsD;AACtD,wEAAwE;AACxE,mEAAmE;AACnE,wDAAwD;AACxD,wCAAwC;AACxC,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,uBAAuB,GACxB,MAAM,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,EAAE;AACF,8DAA8D;AAE9D,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAG/D,OAAO,EAAE,oBAAoB,EAAE,yBAAyB,EAAqB,MAAM,WAAW,CAAC;AAC/F,gEAAgE;AAChE,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEjF,OAAO,EACL,eAAe,EACf,sBAAsB,EACtB,uBAAuB,EACvB,aAAa,GACd,MAAM,QAAQ,CAAC;AAChB,iFAAiF;AAEjF,yDAAyD;AACzD,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,UAAU,CAAC;AAGlB,sDAAsD;AACtD,wEAAwE;AACxE,mEAAmE;AACnE,wDAAwD;AACxD,wCAAwC;AACxC,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,uBAAuB,GACxB,MAAM,sBAAsB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agenticprimitives/agent-account",
|
|
3
|
-
"version": "1.0.0-alpha.
|
|
3
|
+
"version": "1.0.0-alpha.9",
|
|
4
4
|
"description": "ERC-4337 smart-account substrate: deterministic addressing, factory deployment, ERC-1271 signing, UserOp building.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -32,8 +32,8 @@
|
|
|
32
32
|
},
|
|
33
33
|
"peerDependencies": {
|
|
34
34
|
"viem": "^2.52.2",
|
|
35
|
-
"@agenticprimitives/connect-auth": "1.0.0-alpha.
|
|
36
|
-
"@agenticprimitives/types": "1.0.0-alpha.
|
|
35
|
+
"@agenticprimitives/connect-auth": "1.0.0-alpha.9",
|
|
36
|
+
"@agenticprimitives/types": "1.0.0-alpha.9"
|
|
37
37
|
},
|
|
38
38
|
"devDependencies": {
|
|
39
39
|
"vitest": "^4.1.8"
|