@ampersend_ai/ampersend-sdk 0.0.12 → 0.0.14
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/ampersend/treasurer.d.ts +2 -1
- package/dist/ampersend/treasurer.d.ts.map +1 -1
- package/dist/ampersend/treasurer.js +16 -4
- package/dist/ampersend/treasurer.js.map +1 -1
- package/dist/ampersend/types.d.ts +116 -4
- package/dist/ampersend/types.d.ts.map +1 -1
- package/dist/ampersend/types.js +46 -2
- package/dist/ampersend/types.js.map +1 -1
- package/dist/cli/commands/config.d.ts.map +1 -1
- package/dist/cli/commands/config.js +21 -2
- package/dist/cli/commands/config.js.map +1 -1
- package/dist/cli/commands/fetch.d.ts.map +1 -1
- package/dist/cli/commands/fetch.js +2 -1
- package/dist/cli/commands/fetch.js.map +1 -1
- package/dist/cli/config.d.ts +10 -0
- package/dist/cli/config.d.ts.map +1 -1
- package/dist/cli/config.js +30 -2
- package/dist/cli/config.js.map +1 -1
- package/dist/smart-account/constants.d.ts +5 -0
- package/dist/smart-account/constants.d.ts.map +1 -1
- package/dist/smart-account/constants.js +5 -0
- package/dist/smart-account/constants.js.map +1 -1
- package/dist/smart-account/eip712-types.d.ts +27 -0
- package/dist/smart-account/eip712-types.d.ts.map +1 -0
- package/dist/smart-account/eip712-types.js +16 -0
- package/dist/smart-account/eip712-types.js.map +1 -0
- package/dist/smart-account/index.d.ts +2 -1
- package/dist/smart-account/index.d.ts.map +1 -1
- package/dist/smart-account/index.js +2 -1
- package/dist/smart-account/index.js.map +1 -1
- package/dist/smart-account/signing.d.ts.map +1 -1
- package/dist/smart-account/signing.js +2 -8
- package/dist/smart-account/signing.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/x402/index.d.ts +1 -0
- package/dist/x402/index.d.ts.map +1 -1
- package/dist/x402/index.js.map +1 -1
- package/dist/x402/types.d.ts +36 -0
- package/dist/x402/types.d.ts.map +1 -0
- package/dist/x402/types.js +9 -0
- package/dist/x402/types.js.map +1 -0
- package/dist/x402/wallet.d.ts +3 -1
- package/dist/x402/wallet.d.ts.map +1 -1
- package/dist/x402/wallet.js.map +1 -1
- package/dist/x402/wallets/account/wallet.d.ts +5 -3
- package/dist/x402/wallets/account/wallet.d.ts.map +1 -1
- package/dist/x402/wallets/account/wallet.js +2 -1
- package/dist/x402/wallets/account/wallet.js.map +1 -1
- package/dist/x402/wallets/index.d.ts +1 -0
- package/dist/x402/wallets/index.d.ts.map +1 -1
- package/dist/x402/wallets/index.js +1 -0
- package/dist/x402/wallets/index.js.map +1 -1
- package/dist/x402/wallets/smart-account/cosigned.d.ts +46 -0
- package/dist/x402/wallets/smart-account/cosigned.d.ts.map +1 -0
- package/dist/x402/wallets/smart-account/cosigned.js +90 -0
- package/dist/x402/wallets/smart-account/cosigned.js.map +1 -0
- package/dist/x402/wallets/smart-account/wallet.d.ts +8 -1
- package/dist/x402/wallets/smart-account/wallet.d.ts.map +1 -1
- package/dist/x402/wallets/smart-account/wallet.js +14 -3
- package/dist/x402/wallets/smart-account/wallet.js.map +1 -1
- package/package.json +1 -1
package/dist/cli/config.js
CHANGED
|
@@ -4,7 +4,7 @@ import { join } from "node:path";
|
|
|
4
4
|
import { Schema } from "effect";
|
|
5
5
|
import { isAddress } from "viem";
|
|
6
6
|
import { privateKeyToAddress } from "viem/accounts";
|
|
7
|
-
import { parseEnvConfig } from "../ampersend/env.js";
|
|
7
|
+
import { NETWORKS, parseEnvConfig } from "../ampersend/env.js";
|
|
8
8
|
import { err, ok } from "./envelope.js";
|
|
9
9
|
/** Config directory and file paths */
|
|
10
10
|
const CONFIG_DIR = join(homedir(), ".ampersend");
|
|
@@ -21,6 +21,7 @@ const StoredConfigSchema = Schema.Struct({
|
|
|
21
21
|
version: Schema.Literal(1),
|
|
22
22
|
agentKey: Schema.optional(HexString),
|
|
23
23
|
agentAccount: Schema.optional(HexString),
|
|
24
|
+
network: Schema.optional(Schema.Literal(...NETWORKS)),
|
|
24
25
|
apiUrl: Schema.optional(Schema.String),
|
|
25
26
|
pendingApproval: Schema.optional(Schema.Struct({
|
|
26
27
|
token: Schema.String,
|
|
@@ -116,6 +117,7 @@ export function setConfig(secret) {
|
|
|
116
117
|
writeConfig({
|
|
117
118
|
agentKey: agentKey,
|
|
118
119
|
agentAccount: agentAccount,
|
|
120
|
+
...(existing?.network ? { network: existing.network } : {}),
|
|
119
121
|
...(existing?.apiUrl ? { apiUrl: existing.apiUrl } : {}),
|
|
120
122
|
// Preserve pending approval if any
|
|
121
123
|
...(existing?.pendingApproval ? { pendingApproval: existing.pendingApproval } : {}),
|
|
@@ -143,11 +145,29 @@ export function setApiUrl(apiUrl) {
|
|
|
143
145
|
writeConfig({
|
|
144
146
|
...(existing?.agentKey ? { agentKey: existing.agentKey } : {}),
|
|
145
147
|
...(existing?.agentAccount ? { agentAccount: existing.agentAccount } : {}),
|
|
148
|
+
...(existing?.network ? { network: existing.network } : {}),
|
|
146
149
|
...(existing?.pendingApproval ? { pendingApproval: existing.pendingApproval } : {}),
|
|
147
150
|
...(apiUrl != null ? { apiUrl } : {}),
|
|
148
151
|
});
|
|
149
152
|
return ok({ apiUrl: apiUrl ?? DEFAULT_API_URL });
|
|
150
153
|
}
|
|
154
|
+
/**
|
|
155
|
+
* Set network in config. Pass undefined to clear (revert to default "base").
|
|
156
|
+
*/
|
|
157
|
+
export function setNetwork(network) {
|
|
158
|
+
if (network != null && !NETWORKS.includes(network)) {
|
|
159
|
+
return err("INVALID_NETWORK", `Invalid network. Must be one of: ${NETWORKS.join(", ")}`);
|
|
160
|
+
}
|
|
161
|
+
const existing = readConfig();
|
|
162
|
+
writeConfig({
|
|
163
|
+
...(existing?.agentKey ? { agentKey: existing.agentKey } : {}),
|
|
164
|
+
...(existing?.agentAccount ? { agentAccount: existing.agentAccount } : {}),
|
|
165
|
+
...(existing?.apiUrl ? { apiUrl: existing.apiUrl } : {}),
|
|
166
|
+
...(existing?.pendingApproval ? { pendingApproval: existing.pendingApproval } : {}),
|
|
167
|
+
...(network != null ? { network: network } : {}),
|
|
168
|
+
});
|
|
169
|
+
return ok({ network: network ?? "base" });
|
|
170
|
+
}
|
|
151
171
|
/**
|
|
152
172
|
* Store a pending approval in config.
|
|
153
173
|
* Called by `setup start`.
|
|
@@ -157,6 +177,7 @@ export function storePendingApproval(pending) {
|
|
|
157
177
|
writeConfig({
|
|
158
178
|
...(existing?.agentKey ? { agentKey: existing.agentKey } : {}),
|
|
159
179
|
...(existing?.agentAccount ? { agentAccount: existing.agentAccount } : {}),
|
|
180
|
+
...(existing?.network ? { network: existing.network } : {}),
|
|
160
181
|
...(existing?.apiUrl ? { apiUrl: existing.apiUrl } : {}),
|
|
161
182
|
pendingApproval: pending,
|
|
162
183
|
});
|
|
@@ -180,7 +201,7 @@ export function promotePending(agentAccount) {
|
|
|
180
201
|
if (!existing?.pendingApproval) {
|
|
181
202
|
return err("NO_PENDING", "No pending approval to promote");
|
|
182
203
|
}
|
|
183
|
-
const { agentKey: _oldKey, pendingApproval, version:
|
|
204
|
+
const { agentKey: _oldKey, pendingApproval, version: _version, ...rest } = existing;
|
|
184
205
|
const agentKeyAddress = privateKeyToAddress(pendingApproval.agentKey);
|
|
185
206
|
// Promote: pending key becomes active, pending cleared
|
|
186
207
|
writeConfig({
|
|
@@ -211,6 +232,7 @@ export function getStatus() {
|
|
|
211
232
|
credentialSource: "env",
|
|
212
233
|
agentKeyAddress,
|
|
213
234
|
agentAccount,
|
|
235
|
+
network: envConfig.NETWORK,
|
|
214
236
|
};
|
|
215
237
|
if (existsSync(CONFIG_FILE)) {
|
|
216
238
|
result.configPath = CONFIG_FILE;
|
|
@@ -242,6 +264,12 @@ export function getStatus() {
|
|
|
242
264
|
if (config.agentAccount) {
|
|
243
265
|
result.agentAccount = config.agentAccount;
|
|
244
266
|
}
|
|
267
|
+
// Determine effective network (env var takes precedence over file)
|
|
268
|
+
const envNetwork = process.env.AMPERSEND_NETWORK;
|
|
269
|
+
const effectiveNetwork = envNetwork ?? config.network;
|
|
270
|
+
if (effectiveNetwork) {
|
|
271
|
+
result.network = effectiveNetwork;
|
|
272
|
+
}
|
|
245
273
|
if (effectiveApiUrl && effectiveApiUrl !== DEFAULT_API_URL) {
|
|
246
274
|
result.apiUrl = effectiveApiUrl;
|
|
247
275
|
}
|
package/dist/cli/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/cli/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAC5E,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAEhC,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAA;AAChC,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AAEnD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/cli/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,4 +7,9 @@
|
|
|
7
7
|
* @see https://github.com/rhinestonewtf/sdk/blob/main/src/modules/validators/core.ts
|
|
8
8
|
*/
|
|
9
9
|
export declare const OWNABLE_VALIDATOR: "0x000000000013fdB5234E4E3162a810F54d9f7E98";
|
|
10
|
+
/**
|
|
11
|
+
* CoSignerValidator address - ERC-7579 validator requiring dual ECDSA signatures
|
|
12
|
+
* Deployed via CREATE2 (same address on all chains)
|
|
13
|
+
*/
|
|
14
|
+
export declare const COSIGNER_VALIDATOR: "0x375992f0Eff108D87eAcD355B610bE2263B49bF8";
|
|
10
15
|
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/smart-account/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,EAAG,4CAAqD,CAAA"}
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/smart-account/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,EAAG,4CAAqD,CAAA;AAEtF;;;GAGG;AACH,eAAO,MAAM,kBAAkB,EAAG,4CAAqD,CAAA"}
|
|
@@ -7,4 +7,9 @@
|
|
|
7
7
|
* @see https://github.com/rhinestonewtf/sdk/blob/main/src/modules/validators/core.ts
|
|
8
8
|
*/
|
|
9
9
|
export const OWNABLE_VALIDATOR = "0x000000000013fdB5234E4E3162a810F54d9f7E98";
|
|
10
|
+
/**
|
|
11
|
+
* CoSignerValidator address - ERC-7579 validator requiring dual ECDSA signatures
|
|
12
|
+
* Deployed via CREATE2 (same address on all chains)
|
|
13
|
+
*/
|
|
14
|
+
export const COSIGNER_VALIDATOR = "0x375992f0Eff108D87eAcD355B610bE2263B49bF8";
|
|
10
15
|
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/smart-account/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;GAIG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,4CAAqD,CAAA"}
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/smart-account/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;GAIG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,4CAAqD,CAAA;AAEtF;;;GAGG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,4CAAqD,CAAA"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared EIP-712 type definitions for ERC-3009 TransferWithAuthorization
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* ERC-3009 TransferWithAuthorization message type
|
|
6
|
+
* Used by USDC and other ERC-3009 compliant tokens for gasless transfers
|
|
7
|
+
*/
|
|
8
|
+
export declare const TRANSFER_WITH_AUTHORIZATION_TYPE: readonly [{
|
|
9
|
+
readonly name: "from";
|
|
10
|
+
readonly type: "address";
|
|
11
|
+
}, {
|
|
12
|
+
readonly name: "to";
|
|
13
|
+
readonly type: "address";
|
|
14
|
+
}, {
|
|
15
|
+
readonly name: "value";
|
|
16
|
+
readonly type: "uint256";
|
|
17
|
+
}, {
|
|
18
|
+
readonly name: "validAfter";
|
|
19
|
+
readonly type: "uint256";
|
|
20
|
+
}, {
|
|
21
|
+
readonly name: "validBefore";
|
|
22
|
+
readonly type: "uint256";
|
|
23
|
+
}, {
|
|
24
|
+
readonly name: "nonce";
|
|
25
|
+
readonly type: "bytes32";
|
|
26
|
+
}];
|
|
27
|
+
//# sourceMappingURL=eip712-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eip712-types.d.ts","sourceRoot":"","sources":["../../src/smart-account/eip712-types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;GAGG;AACH,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;EAOnC,CAAA"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared EIP-712 type definitions for ERC-3009 TransferWithAuthorization
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* ERC-3009 TransferWithAuthorization message type
|
|
6
|
+
* Used by USDC and other ERC-3009 compliant tokens for gasless transfers
|
|
7
|
+
*/
|
|
8
|
+
export const TRANSFER_WITH_AUTHORIZATION_TYPE = [
|
|
9
|
+
{ name: "from", type: "address" },
|
|
10
|
+
{ name: "to", type: "address" },
|
|
11
|
+
{ name: "value", type: "uint256" },
|
|
12
|
+
{ name: "validAfter", type: "uint256" },
|
|
13
|
+
{ name: "validBefore", type: "uint256" },
|
|
14
|
+
{ name: "nonce", type: "bytes32" },
|
|
15
|
+
];
|
|
16
|
+
//# sourceMappingURL=eip712-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eip712-types.js","sourceRoot":"","sources":["../../src/smart-account/eip712-types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,gCAAgC,GAAG;IAC9C,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE;IACjC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE;IAC/B,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;IAClC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE;IACvC,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,SAAS,EAAE;IACxC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;CAC1B,CAAA"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
export { OWNABLE_VALIDATOR } from "./constants.ts";
|
|
1
|
+
export { COSIGNER_VALIDATOR, OWNABLE_VALIDATOR } from "./constants.ts";
|
|
2
|
+
export { TRANSFER_WITH_AUTHORIZATION_TYPE } from "./eip712-types.ts";
|
|
2
3
|
export { signERC3009Authorization, signSmartAccountTypedData } from "./signing.ts";
|
|
3
4
|
export type { ERC3009AuthorizationData } from "./types.ts";
|
|
4
5
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/smart-account/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/smart-account/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AACtE,OAAO,EAAE,gCAAgC,EAAE,MAAM,mBAAmB,CAAA;AACpE,OAAO,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAA;AAClF,YAAY,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAA"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
-
export { OWNABLE_VALIDATOR } from "./constants.js";
|
|
1
|
+
export { COSIGNER_VALIDATOR, OWNABLE_VALIDATOR } from "./constants.js";
|
|
2
|
+
export { TRANSFER_WITH_AUTHORIZATION_TYPE } from "./eip712-types.js";
|
|
2
3
|
export { signERC3009Authorization, signSmartAccountTypedData } from "./signing.js";
|
|
3
4
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/smart-account/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/smart-account/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AACtE,OAAO,EAAE,gCAAgC,EAAE,MAAM,mBAAmB,CAAA;AACpE,OAAO,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signing.d.ts","sourceRoot":"","sources":["../../src/smart-account/signing.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"signing.d.ts","sourceRoot":"","sources":["../../src/smart-account/signing.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,MAAM,CAAA;AAIxE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAA;AAE1D;;;;;;;;GAQG;AACH,wBAAsB,yBAAyB,CAC7C,KAAK,CAAC,SAAS,SAAS,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC3D,WAAW,SAAS,MAAM,SAAS,GAAG,cAAc,GAAG,MAAM,SAAS,EAEtE,oBAAoB,EAAE,GAAG,EACzB,mBAAmB,EAAE,OAAO,EAC5B,MAAM,EAAE,mBAAmB,CAAC,SAAS,EAAE,WAAW,CAAC,EACnD,gBAAgB,EAAE,OAAO,GACxB,OAAO,CAAC,GAAG,CAAC,CAqBd;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,wBAAwB,CAC5C,oBAAoB,EAAE,GAAG,EACzB,mBAAmB,EAAE,OAAO,EAC5B,QAAQ,EAAE,wBAAwB,EAClC,YAAY,EAAE,OAAO,EACrB,OAAO,EAAE,MAAM,EACf,gBAAgB,EAAE,OAAO,EACzB,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,GAAG,CAAC,CA2Bd"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { encode1271Signature, getAccount, getOwnableValidatorSignature } from "@rhinestone/module-sdk";
|
|
2
2
|
import { privateKeyToAccount } from "viem/accounts";
|
|
3
|
+
import { TRANSFER_WITH_AUTHORIZATION_TYPE } from "./eip712-types.js";
|
|
3
4
|
/**
|
|
4
5
|
* Generic smart account typed data signing with OwnableValidator
|
|
5
6
|
*
|
|
@@ -54,14 +55,7 @@ export async function signERC3009Authorization(sessionKeyPrivateKey, smartAccoun
|
|
|
54
55
|
verifyingContract: tokenAddress,
|
|
55
56
|
},
|
|
56
57
|
types: {
|
|
57
|
-
TransferWithAuthorization:
|
|
58
|
-
{ name: "from", type: "address" },
|
|
59
|
-
{ name: "to", type: "address" },
|
|
60
|
-
{ name: "value", type: "uint256" },
|
|
61
|
-
{ name: "validAfter", type: "uint256" },
|
|
62
|
-
{ name: "validBefore", type: "uint256" },
|
|
63
|
-
{ name: "nonce", type: "bytes32" },
|
|
64
|
-
],
|
|
58
|
+
TransferWithAuthorization: TRANSFER_WITH_AUTHORIZATION_TYPE,
|
|
65
59
|
},
|
|
66
60
|
primaryType: "TransferWithAuthorization",
|
|
67
61
|
message: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signing.js","sourceRoot":"","sources":["../../src/smart-account/signing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,4BAA4B,EAAE,MAAM,wBAAwB,CAAA;AAEtG,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"signing.js","sourceRoot":"","sources":["../../src/smart-account/signing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,4BAA4B,EAAE,MAAM,wBAAwB,CAAA;AAEtG,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AAEnD,OAAO,EAAE,gCAAgC,EAAE,MAAM,mBAAmB,CAAA;AAGpE;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAI7C,oBAAyB,EACzB,mBAA4B,EAC5B,MAAmD,EACnD,gBAAyB;IAEzB,yCAAyC;IACzC,MAAM,iBAAiB,GAAG,mBAAmB,CAAC,oBAAoB,CAAC,CAAA;IAEnE,+CAA+C;IAC/C,MAAM,YAAY,GAAG,MAAM,iBAAiB,CAAC,aAAa,CAAC,MAAM,CAAC,CAAA;IAElE,sEAAsE;IACtE,MAAM,kBAAkB,GAAG,4BAA4B,CAAC;QACtD,UAAU,EAAE,CAAC,YAAY,CAAC;KAC3B,CAAC,CAAA;IAEF,qDAAqD;IACrD,OAAO,mBAAmB,CAAC;QACzB,OAAO,EAAE,UAAU,CAAC;YAClB,OAAO,EAAE,mBAAmB;YAC5B,IAAI,EAAE,MAAM;SACb,CAAC;QACF,SAAS,EAAE,gBAAgB;QAC3B,SAAS,EAAE,kBAAkB;KAC9B,CAAC,CAAA;AACJ,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,oBAAyB,EACzB,mBAA4B,EAC5B,QAAkC,EAClC,YAAqB,EACrB,OAAe,EACf,gBAAyB,EACzB,UAAkB,EAClB,aAAqB;IAErB,4DAA4D;IAC5D,OAAO,MAAM,yBAAyB,CACpC,oBAAoB,EACpB,mBAAmB,EACnB;QACE,MAAM,EAAE;YACN,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE,aAAa;YACtB,OAAO;YACP,iBAAiB,EAAE,YAAY;SAChC;QACD,KAAK,EAAE;YACL,yBAAyB,EAAE,gCAAgC;SAC5D;QACD,WAAW,EAAE,2BAA2B;QACxC,OAAO,EAAE;YACP,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,EAAE,EAAE,QAAQ,CAAC,EAAE;YACf,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,WAAW,EAAE,QAAQ,CAAC,WAAW;YACjC,KAAK,EAAE,QAAQ,CAAC,KAAK;SACtB;KACF,EACD,gBAAgB,CACjB,CAAA;AACH,CAAC"}
|
package/dist/version.d.ts
CHANGED
package/dist/version.js
CHANGED
package/dist/x402/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export type { Authorization, PaymentContext, PaymentStatus, X402Treasurer } from "./treasurer.ts";
|
|
2
|
+
export type { ERC3009AuthorizationData, ServerAuthorizationData } from "./types.ts";
|
|
2
3
|
export { WalletError } from "./wallet.ts";
|
|
3
4
|
export type { X402Wallet } from "./wallet.ts";
|
|
4
5
|
export { AccountWallet, SmartAccountWallet, createWalletFromConfig } from "./wallets/index.ts";
|
package/dist/x402/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/x402/index.ts"],"names":[],"mappings":"AACA,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AACjG,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AACzC,YAAY,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAG7C,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAA;AAC9F,YAAY,EAAE,kBAAkB,EAAE,YAAY,EAAE,eAAe,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAA;AAGrH,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/x402/index.ts"],"names":[],"mappings":"AACA,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AACjG,YAAY,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAA;AACnF,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AACzC,YAAY,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAG7C,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAA;AAC9F,YAAY,EAAE,kBAAkB,EAAE,YAAY,EAAE,eAAe,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAA;AAGrH,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA"}
|
package/dist/x402/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/x402/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/x402/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAGzC,yBAAyB;AACzB,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAA;AAG9F,eAAe;AACf,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared types for the x402 payment layer.
|
|
3
|
+
*
|
|
4
|
+
* These are plain interfaces used by the x402 wallet abstraction.
|
|
5
|
+
* The ampersend-specific layer (ampersend/types.ts) defines Effect Schema
|
|
6
|
+
* classes that are structurally compatible with these interfaces.
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* ERC-3009 TransferWithAuthorization data fields.
|
|
10
|
+
* Used by wallets to construct EIP-712 typed data for signing.
|
|
11
|
+
*/
|
|
12
|
+
export interface ERC3009AuthorizationData {
|
|
13
|
+
/** Sender address (agent smart account) */
|
|
14
|
+
from: string;
|
|
15
|
+
/** Recipient address (seller) */
|
|
16
|
+
to: string;
|
|
17
|
+
/** Transfer amount in wei (stringified bigint) */
|
|
18
|
+
value: string;
|
|
19
|
+
/** Unix timestamp after which the authorization is valid (stringified bigint) */
|
|
20
|
+
validAfter: string;
|
|
21
|
+
/** Unix timestamp before which the authorization expires (stringified bigint) */
|
|
22
|
+
validBefore: string;
|
|
23
|
+
/** Random 32-byte nonce as hex string for replay protection */
|
|
24
|
+
nonce: string;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Server co-signature data for co-signed agent keys.
|
|
28
|
+
* Provided by the Ampersend API when authorizing payments for co-signed keys.
|
|
29
|
+
*/
|
|
30
|
+
export interface ServerAuthorizationData {
|
|
31
|
+
/** ERC-3009 TransferWithAuthorization data */
|
|
32
|
+
authorizationData: ERC3009AuthorizationData;
|
|
33
|
+
/** Server's ECDSA signature (65 bytes as hex string) */
|
|
34
|
+
serverSignature: string;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/x402/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;GAGG;AACH,MAAM,WAAW,wBAAwB;IACvC,2CAA2C;IAC3C,IAAI,EAAE,MAAM,CAAA;IACZ,iCAAiC;IACjC,EAAE,EAAE,MAAM,CAAA;IACV,kDAAkD;IAClD,KAAK,EAAE,MAAM,CAAA;IACb,iFAAiF;IACjF,UAAU,EAAE,MAAM,CAAA;IAClB,iFAAiF;IACjF,WAAW,EAAE,MAAM,CAAA;IACnB,+DAA+D;IAC/D,KAAK,EAAE,MAAM,CAAA;CACd;AAED;;;GAGG;AACH,MAAM,WAAW,uBAAuB;IACtC,8CAA8C;IAC9C,iBAAiB,EAAE,wBAAwB,CAAA;IAC3C,wDAAwD;IACxD,eAAe,EAAE,MAAM,CAAA;CACxB"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared types for the x402 payment layer.
|
|
3
|
+
*
|
|
4
|
+
* These are plain interfaces used by the x402 wallet abstraction.
|
|
5
|
+
* The ampersend-specific layer (ampersend/types.ts) defines Effect Schema
|
|
6
|
+
* classes that are structurally compatible with these interfaces.
|
|
7
|
+
*/
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/x402/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
|
package/dist/x402/wallet.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { PaymentPayload, PaymentRequirements } from "x402/types";
|
|
2
|
+
import type { ServerAuthorizationData } from "./types.ts";
|
|
2
3
|
/**
|
|
3
4
|
* Error thrown when wallet cannot create a payment
|
|
4
5
|
*/
|
|
@@ -33,9 +34,10 @@ export interface X402Wallet {
|
|
|
33
34
|
* Creates a payment payload from requirements.
|
|
34
35
|
*
|
|
35
36
|
* @param requirements - Payment requirements from seller
|
|
37
|
+
* @param serverAuthorization - Optional server co-signature data (for co-signed smart account keys)
|
|
36
38
|
* @returns Signed payment payload ready for submission
|
|
37
39
|
* @throws {WalletError} If unable to create payment (unsupported scheme, insufficient funds, etc.)
|
|
38
40
|
*/
|
|
39
|
-
createPayment(requirements: PaymentRequirements): Promise<PaymentPayload>;
|
|
41
|
+
createPayment(requirements: PaymentRequirements, serverAuthorization?: ServerAuthorizationData): Promise<PaymentPayload>;
|
|
40
42
|
}
|
|
41
43
|
//# sourceMappingURL=wallet.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wallet.d.ts","sourceRoot":"","sources":["../../src/x402/wallet.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAErE;;GAEG;AACH,qBAAa,WAAY,SAAQ,KAAK;IAG3B,KAAK,CAAC,EAAE,KAAK;gBADpB,OAAO,EAAE,MAAM,EACR,KAAK,CAAC,EAAE,KAAK,YAAA;CAKvB;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,WAAW,UAAU;IACzB
|
|
1
|
+
{"version":3,"file":"wallet.d.ts","sourceRoot":"","sources":["../../src/x402/wallet.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAErE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAA;AAEzD;;GAEG;AACH,qBAAa,WAAY,SAAQ,KAAK;IAG3B,KAAK,CAAC,EAAE,KAAK;gBADpB,OAAO,EAAE,MAAM,EACR,KAAK,CAAC,EAAE,KAAK,YAAA;CAKvB;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,WAAW,UAAU;IACzB;;;;;;;OAOG;IACH,aAAa,CACX,YAAY,EAAE,mBAAmB,EACjC,mBAAmB,CAAC,EAAE,uBAAuB,GAC5C,OAAO,CAAC,cAAc,CAAC,CAAA;CAC3B"}
|
package/dist/x402/wallet.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wallet.js","sourceRoot":"","sources":["../../src/x402/wallet.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"wallet.js","sourceRoot":"","sources":["../../src/x402/wallet.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,MAAM,OAAO,WAAY,SAAQ,KAAK;IAG3B;IAFT,YACE,OAAe,EACR,KAAa;QAEpB,KAAK,CAAC,OAAO,CAAC,CAAA;QAFP,UAAK,GAAL,KAAK,CAAQ;QAGpB,IAAI,CAAC,IAAI,GAAG,aAAa,CAAA;IAC3B,CAAC;CACF"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { Hex, LocalAccount } from "viem";
|
|
2
2
|
import type { PaymentPayload, PaymentRequirements } from "x402/types";
|
|
3
|
+
import type { ServerAuthorizationData } from "../../../ampersend/types.ts";
|
|
3
4
|
import { type X402Wallet } from "../../wallet.ts";
|
|
4
5
|
/**
|
|
5
6
|
* AccountWallet - EOA (Externally Owned Account) wallet implementation
|
|
@@ -21,7 +22,7 @@ import { type X402Wallet } from "../../wallet.ts";
|
|
|
21
22
|
*/
|
|
22
23
|
export declare class AccountWallet implements X402Wallet {
|
|
23
24
|
private account;
|
|
24
|
-
constructor(account:
|
|
25
|
+
constructor(account: LocalAccount);
|
|
25
26
|
/**
|
|
26
27
|
* Creates an AccountWallet from a private key
|
|
27
28
|
*/
|
|
@@ -29,8 +30,9 @@ export declare class AccountWallet implements X402Wallet {
|
|
|
29
30
|
/**
|
|
30
31
|
* Creates a payment payload from requirements.
|
|
31
32
|
* Only supports "exact" payment scheme.
|
|
33
|
+
* Note: serverAuthorization parameter is ignored for EOA wallets (only used by SmartAccountWallet)
|
|
32
34
|
*/
|
|
33
|
-
createPayment(requirements: PaymentRequirements): Promise<PaymentPayload>;
|
|
35
|
+
createPayment(requirements: PaymentRequirements, _serverAuthorization?: ServerAuthorizationData): Promise<PaymentPayload>;
|
|
34
36
|
/**
|
|
35
37
|
* Returns the account address
|
|
36
38
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wallet.d.ts","sourceRoot":"","sources":["../../../../src/x402/wallets/account/wallet.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"wallet.d.ts","sourceRoot":"","sources":["../../../../src/x402/wallets/account/wallet.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,MAAM,CAAA;AAG7C,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAErE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAA;AAC1E,OAAO,EAAe,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAE9D;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,aAAc,YAAW,UAAU;IAC9C,OAAO,CAAC,OAAO,CAAc;gBAEjB,OAAO,EAAE,YAAY;IAIjC;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,GAAG,GAAG,aAAa;IAIrD;;;;OAIG;IACG,aAAa,CACjB,YAAY,EAAE,mBAAmB,EACjC,oBAAoB,CAAC,EAAE,uBAAuB,GAC7C,OAAO,CAAC,cAAc,CAAC;IAsB1B;;OAEG;IACH,IAAI,OAAO,IAAI,GAAG,CAEjB;CACF"}
|
|
@@ -33,8 +33,9 @@ export class AccountWallet {
|
|
|
33
33
|
/**
|
|
34
34
|
* Creates a payment payload from requirements.
|
|
35
35
|
* Only supports "exact" payment scheme.
|
|
36
|
+
* Note: serverAuthorization parameter is ignored for EOA wallets (only used by SmartAccountWallet)
|
|
36
37
|
*/
|
|
37
|
-
async createPayment(requirements) {
|
|
38
|
+
async createPayment(requirements, _serverAuthorization) {
|
|
38
39
|
if (requirements.scheme !== "exact") {
|
|
39
40
|
throw new WalletError(`Unsupported payment scheme: ${requirements.scheme}. AccountWallet only supports "exact".`);
|
|
40
41
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wallet.js","sourceRoot":"","sources":["../../../../src/x402/wallets/account/wallet.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"wallet.js","sourceRoot":"","sources":["../../../../src/x402/wallets/account/wallet.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAIjD,OAAO,EAAE,WAAW,EAAmB,MAAM,iBAAiB,CAAA;AAE9D;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,OAAO,aAAa;IAChB,OAAO,CAAc;IAE7B,YAAY,OAAqB;QAC/B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,UAAe;QACnC,OAAO,IAAI,aAAa,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC,CAAA;IAC3D,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,aAAa,CACjB,YAAiC,EACjC,oBAA8C;QAE9C,IAAI,YAAY,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;YACpC,MAAM,IAAI,WAAW,CAAC,+BAA+B,YAAY,CAAC,MAAM,wCAAwC,CAAC,CAAA;QACnH,CAAC;QAED,IAAI,CAAC;YACH,kDAAkD;YAClD,MAAM,aAAa,GAAG,MAAM,mBAAmB,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,YAAY,CAAC,CAAA;YAE9E,iDAAiD;YACjD,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;YACtE,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAmB,CAAA;YAErD,OAAO,OAAO,CAAA;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,WAAW,CACnB,6BAA6B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EACrF,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAC3C,CAAA;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACH,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAA;IAC7B,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/x402/wallets/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,MAAM,CAAA;AAExC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAI9C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,kBAAkB,EAAE,KAAK,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAEvF;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,KAAK,CAAA;IACX,UAAU,EAAE,GAAG,CAAA;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,eAAe,CAAA;IACrB,mBAAmB,EAAE,OAAO,CAAA;IAC5B,oBAAoB,EAAE,GAAG,CAAA;IACzB,OAAO,EAAE,MAAM,CAAA;IACf,gBAAgB,EAAE,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/x402/wallets/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,MAAM,CAAA;AAExC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAI9C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,kBAAkB,EAAE,KAAK,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAEvF;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,KAAK,CAAA;IACX,UAAU,EAAE,GAAG,CAAA;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,eAAe,CAAA;IACrB,mBAAmB,EAAE,OAAO,CAAA;IAC5B,oBAAoB,EAAE,GAAG,CAAA;IACzB,OAAO,EAAE,MAAM,CAAA;IACf,gBAAgB,EAAE,OAAO,CAAA;IACzB,wBAAwB,CAAC,EAAE,OAAO,CAAA;CACnC;AAED;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,eAAe,GAAG,wBAAwB,CAAA;AAErE;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,YAAY,GAAG,UAAU,CAYvE"}
|
|
@@ -18,6 +18,7 @@ export function createWalletFromConfig(config) {
|
|
|
18
18
|
sessionKeyPrivateKey: config.sessionKeyPrivateKey,
|
|
19
19
|
chainId: config.chainId,
|
|
20
20
|
validatorAddress: config.validatorAddress,
|
|
21
|
+
...(config.coSignerValidatorAddress != null && { coSignerValidatorAddress: config.coSignerValidatorAddress }),
|
|
21
22
|
});
|
|
22
23
|
}
|
|
23
24
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/x402/wallets/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAE9D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,kBAAkB,EAA2B,MAAM,2BAA2B,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/x402/wallets/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAE9D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,kBAAkB,EAA2B,MAAM,2BAA2B,CAAA;AA2BvF;;;;;;GAMG;AACH,MAAM,UAAU,sBAAsB,CAAC,MAAoB;IACzD,IAAI,MAAM,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;QAC1B,OAAO,aAAa,CAAC,cAAc,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;IACxD,CAAC;IAED,OAAO,IAAI,kBAAkB,CAAC;QAC5B,mBAAmB,EAAE,MAAM,CAAC,mBAAmB;QAC/C,oBAAoB,EAAE,MAAM,CAAC,oBAAoB;QACjD,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;QACzC,GAAG,CAAC,MAAM,CAAC,wBAAwB,IAAI,IAAI,IAAI,EAAE,wBAAwB,EAAE,MAAM,CAAC,wBAAwB,EAAE,CAAC;KAC9G,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { type Address, type Hex, type TypedDataDefinition } from "viem";
|
|
2
|
+
import type { PaymentPayload, PaymentRequirements } from "x402/types";
|
|
3
|
+
import type { ServerAuthorizationData } from "../../types.ts";
|
|
4
|
+
/**
|
|
5
|
+
* Configuration for creating a co-signed payment
|
|
6
|
+
*/
|
|
7
|
+
export interface CoSignedPaymentConfig {
|
|
8
|
+
/** Smart account address (payment sender) */
|
|
9
|
+
smartAccountAddress: Address;
|
|
10
|
+
/** Session key private key for signing */
|
|
11
|
+
sessionKeyPrivateKey: Hex;
|
|
12
|
+
/** Chain ID for the blockchain network */
|
|
13
|
+
chainId: number;
|
|
14
|
+
/** CoSignerValidator address */
|
|
15
|
+
coSignerValidatorAddress: Address;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Encode a co-signed ERC-1271 signature
|
|
19
|
+
*
|
|
20
|
+
* Combines agent signature + server signature according to CoSignerValidator format:
|
|
21
|
+
* 1. Sign typed data with agent key (raw ECDSA)
|
|
22
|
+
* 2. Combine: abi.encode(agentSig, serverSig)
|
|
23
|
+
* 3. Wrap for ERC-1271: encodePacked(validatorAddress, combined)
|
|
24
|
+
*
|
|
25
|
+
* @param agentPrivateKey - Agent's session key private key
|
|
26
|
+
* @param typedDataParams - EIP-712 typed data to sign
|
|
27
|
+
* @param serverSignature - Server's ECDSA signature (65 bytes as hex)
|
|
28
|
+
* @param coSignerValidatorAddress - CoSignerValidator contract address
|
|
29
|
+
* @returns ERC-1271 formatted signature
|
|
30
|
+
*/
|
|
31
|
+
export declare function encodeCoSignedERC1271Signature(agentPrivateKey: Hex, typedDataParams: TypedDataDefinition, serverSignature: Hex, coSignerValidatorAddress: Address): Promise<Hex>;
|
|
32
|
+
/**
|
|
33
|
+
* Creates a payment payload using server co-signature
|
|
34
|
+
*
|
|
35
|
+
* This is used for co-signed agent keys where the server provides the ERC-3009
|
|
36
|
+
* authorization data and co-signature. The agent key adds its signature and
|
|
37
|
+
* combines them for ERC-1271 validation via CoSignerValidator.
|
|
38
|
+
*
|
|
39
|
+
* @param requirements - Payment requirements from the x402 server
|
|
40
|
+
* @param config - Configuration for the smart account wallet
|
|
41
|
+
* @param serverAuthorization - Server-provided authorization data and co-signature
|
|
42
|
+
* @returns Payment payload ready to send to x402 server
|
|
43
|
+
* @throws Error if requirements are invalid or signing fails
|
|
44
|
+
*/
|
|
45
|
+
export declare function createCoSignedPayment(requirements: PaymentRequirements, config: CoSignedPaymentConfig, serverAuthorization: ServerAuthorizationData): Promise<PaymentPayload>;
|
|
46
|
+
//# sourceMappingURL=cosigned.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cosigned.d.ts","sourceRoot":"","sources":["../../../../src/x402/wallets/smart-account/cosigned.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqC,KAAK,OAAO,EAAE,KAAK,GAAG,EAAE,KAAK,mBAAmB,EAAE,MAAM,MAAM,CAAA;AAE1G,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAGrE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAA;AAE7D;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,6CAA6C;IAC7C,mBAAmB,EAAE,OAAO,CAAA;IAC5B,0CAA0C;IAC1C,oBAAoB,EAAE,GAAG,CAAA;IACzB,0CAA0C;IAC1C,OAAO,EAAE,MAAM,CAAA;IACf,gCAAgC;IAChC,wBAAwB,EAAE,OAAO,CAAA;CAClC;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,8BAA8B,CAClD,eAAe,EAAE,GAAG,EACpB,eAAe,EAAE,mBAAmB,EACpC,eAAe,EAAE,GAAG,EACpB,wBAAwB,EAAE,OAAO,GAChC,OAAO,CAAC,GAAG,CAAC,CAad;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,qBAAqB,CACzC,YAAY,EAAE,mBAAmB,EACjC,MAAM,EAAE,qBAAqB,EAC7B,mBAAmB,EAAE,uBAAuB,GAC3C,OAAO,CAAC,cAAc,CAAC,CA4DzB"}
|