@vapi-network/core 0.5.0 → 0.8.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 +406 -5
- package/dist/account-add.d.ts +101 -0
- package/dist/account-add.d.ts.map +1 -0
- package/dist/account-movement-lock.d.ts +10 -0
- package/dist/account-movement-lock.d.ts.map +1 -0
- package/dist/agent-link.d.ts +16 -1
- package/dist/agent-link.d.ts.map +1 -1
- package/dist/agent-link.js +131 -54
- package/dist/agent-link.js.map +3 -3
- package/dist/agent-profile.d.ts +47 -6
- package/dist/agent-profile.d.ts.map +1 -1
- package/dist/agent-run.d.ts +12 -0
- package/dist/agent-run.d.ts.map +1 -0
- package/dist/allocation.d.ts +64 -0
- package/dist/allocation.d.ts.map +1 -0
- package/dist/api-key.js +4 -2
- package/dist/api-key.js.map +1 -1
- package/dist/atomic-file.d.ts +23 -0
- package/dist/atomic-file.d.ts.map +1 -0
- package/dist/audit.d.ts +4 -1
- package/dist/audit.d.ts.map +1 -1
- package/dist/backup.d.ts +307 -0
- package/dist/backup.d.ts.map +1 -0
- package/dist/backup.js +49938 -0
- package/dist/backup.js.map +6 -0
- package/dist/call-contracts-wire.d.ts +12 -12
- package/dist/ceiling.d.ts +98 -0
- package/dist/ceiling.d.ts.map +1 -0
- package/dist/cloud-backup.d.ts +123 -0
- package/dist/cloud-backup.d.ts.map +1 -0
- package/dist/cloud-backup.js +50827 -0
- package/dist/cloud-backup.js.map +6 -0
- package/dist/config.d.ts +5 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/device.d.ts +15 -0
- package/dist/device.d.ts.map +1 -0
- package/dist/distribute.d.ts +68 -0
- package/dist/distribute.d.ts.map +1 -0
- package/dist/index.d.ts +17 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10131 -1228
- package/dist/index.js.map +3 -3
- package/dist/keystore.d.ts +24 -1
- package/dist/keystore.d.ts.map +1 -1
- package/dist/marketplace-contracts.d.ts +14 -14
- package/dist/member-bundle.d.ts +110 -0
- package/dist/member-bundle.d.ts.map +1 -0
- package/dist/movement-open.d.ts +10 -0
- package/dist/movement-open.d.ts.map +1 -0
- package/dist/movement.d.ts +172 -0
- package/dist/movement.d.ts.map +1 -0
- package/dist/networks.d.ts +1 -0
- package/dist/networks.d.ts.map +1 -1
- package/dist/receipts.d.ts +33 -0
- package/dist/receipts.d.ts.map +1 -1
- package/dist/router-client.d.ts +9 -1
- package/dist/router-client.d.ts.map +1 -1
- package/dist/router-client.js +36500 -16308
- package/dist/router-client.js.map +3 -3
- package/dist/run-budget.d.ts +17 -0
- package/dist/run-budget.d.ts.map +1 -0
- package/dist/secret-store.d.ts +23 -5
- package/dist/secret-store.d.ts.map +1 -1
- package/dist/secrets.d.ts +2 -0
- package/dist/secrets.d.ts.map +1 -1
- package/dist/secrets.js +1439 -56
- package/dist/secrets.js.map +3 -3
- package/dist/siblings.d.ts +41 -0
- package/dist/siblings.d.ts.map +1 -0
- package/dist/spend-policy.d.ts +12 -0
- package/dist/spend-policy.d.ts.map +1 -1
- package/dist/status.d.ts +73 -0
- package/dist/status.d.ts.map +1 -0
- package/dist/support-report.d.ts +1 -1
- package/dist/swarm-capital.d.ts +147 -0
- package/dist/swarm-capital.d.ts.map +1 -0
- package/dist/swarm.d.ts +224 -0
- package/dist/swarm.d.ts.map +1 -0
- package/dist/transfer-journal.d.ts +11 -0
- package/dist/transfer-journal.d.ts.map +1 -0
- package/dist/transfer.d.ts +65 -0
- package/dist/transfer.d.ts.map +1 -0
- package/dist/vault-key.d.ts +41 -0
- package/dist/vault-key.d.ts.map +1 -0
- package/dist/vault-migrate.d.ts +29 -0
- package/dist/vault-migrate.d.ts.map +1 -0
- package/dist/vault.d.ts +104 -0
- package/dist/vault.d.ts.map +1 -0
- package/dist/wallet-store.d.ts +135 -39
- package/dist/wallet-store.d.ts.map +1 -1
- package/dist/x402-pay.d.ts +12 -0
- package/dist/x402-pay.d.ts.map +1 -1
- package/dist/x402.d.ts +3 -0
- package/dist/x402.d.ts.map +1 -1
- package/package.json +9 -1
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { SecretStore } from "./secret-store.js";
|
|
2
|
+
import { type Vault } from "./vault.js";
|
|
3
|
+
export declare const VAULT_KEY_ACCOUNT = "vault-key";
|
|
4
|
+
export declare const VAULT_SESSION_ACCOUNT = "vault-session";
|
|
5
|
+
export type VaultEnv = Record<string, string | undefined>;
|
|
6
|
+
export declare function loadOrCreateDeviceKey(args: {
|
|
7
|
+
secrets: SecretStore;
|
|
8
|
+
randomBytes?: (size: number) => Uint8Array;
|
|
9
|
+
}): Promise<Uint8Array>;
|
|
10
|
+
export declare function protectVault(args: {
|
|
11
|
+
path: string;
|
|
12
|
+
secrets: SecretStore;
|
|
13
|
+
password?: string;
|
|
14
|
+
env?: VaultEnv;
|
|
15
|
+
randomBytes?: (size: number) => Uint8Array;
|
|
16
|
+
}): Promise<void>;
|
|
17
|
+
export declare function unprotectVault(args: {
|
|
18
|
+
path: string;
|
|
19
|
+
secrets: SecretStore;
|
|
20
|
+
password?: string;
|
|
21
|
+
env?: VaultEnv;
|
|
22
|
+
}): Promise<void>;
|
|
23
|
+
export declare function unlockProtectedVault(args: {
|
|
24
|
+
path: string;
|
|
25
|
+
secrets: SecretStore;
|
|
26
|
+
password?: string;
|
|
27
|
+
env?: VaultEnv;
|
|
28
|
+
sessionHours?: number;
|
|
29
|
+
now?: () => Date;
|
|
30
|
+
}): Promise<Uint8Array>;
|
|
31
|
+
export declare function lockVault(args: {
|
|
32
|
+
secrets: SecretStore;
|
|
33
|
+
}): Promise<boolean>;
|
|
34
|
+
export declare function restoreVault(args: {
|
|
35
|
+
path: string;
|
|
36
|
+
key: Uint8Array;
|
|
37
|
+
phrase: string;
|
|
38
|
+
probe: (address: `0x${string}`) => Promise<boolean>;
|
|
39
|
+
now?: () => Date;
|
|
40
|
+
}): Promise<Vault>;
|
|
41
|
+
//# sourceMappingURL=vault-key.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vault-key.d.ts","sourceRoot":"","sources":["../src/vault-key.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAQL,KAAK,KAAK,EACX,MAAM,YAAY,CAAC;AAEpB,eAAO,MAAM,iBAAiB,cAAc,CAAC;AAC7C,eAAO,MAAM,qBAAqB,kBAAkB,CAAC;AACrD,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;AAa1D,wBAAsB,qBAAqB,CAAC,IAAI,EAAE;IAChD,OAAO,EAAE,WAAW,CAAC;IACrB,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,UAAU,CAAC;CAC5C,GAAG,OAAO,CAAC,UAAU,CAAC,CAatB;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,WAAW,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,QAAQ,CAAC;IACf,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,UAAU,CAAC;CAC5C,GAAG,OAAO,CAAC,IAAI,CAAC,CA+ChB;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,WAAW,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,QAAQ,CAAC;CAChB,GAAG,OAAO,CAAC,IAAI,CAAC,CA8BhB;AAED,wBAAsB,oBAAoB,CAAC,IAAI,EAAE;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,WAAW,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,QAAQ,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;CAClB,GAAG,OAAO,CAAC,UAAU,CAAC,CAyCtB;AAED,wBAAsB,SAAS,CAAC,IAAI,EAAE;IAAE,OAAO,EAAE,WAAW,CAAA;CAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAMhF;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,UAAU,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,CAAC,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACpD,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;CAClB,GAAG,OAAO,CAAC,KAAK,CAAC,CA0CjB"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { type AuditRecord } from "./audit.js";
|
|
2
|
+
import { type Vault } from "./vault.js";
|
|
3
|
+
export declare const MIGRATED_DIRECTORY = "wallets.migrated";
|
|
4
|
+
export type MigrationSkipReason = "passphrase_needed" | "unreadable" | "name_taken";
|
|
5
|
+
export type KeystoreMigration = {
|
|
6
|
+
imported: string[];
|
|
7
|
+
skipped: {
|
|
8
|
+
name: string;
|
|
9
|
+
reason: MigrationSkipReason;
|
|
10
|
+
}[];
|
|
11
|
+
};
|
|
12
|
+
/** Returns the 0.5 passphrase for one wallet name, or undefined when it cannot be obtained without a person. */
|
|
13
|
+
export type PassphraseResolver = (name: string) => Promise<string | undefined>;
|
|
14
|
+
/**
|
|
15
|
+
* Names of the 0.5 keystores still under `<home>/wallets/`. Only regular files
|
|
16
|
+
* named for a valid wallet are returned.
|
|
17
|
+
*/
|
|
18
|
+
export declare function legacyKeystoreNames(home: string): Promise<string[]>;
|
|
19
|
+
export declare function migrateKeystores(args: {
|
|
20
|
+
home: string;
|
|
21
|
+
vault: Vault;
|
|
22
|
+
resolvePassphrase: PassphraseResolver;
|
|
23
|
+
/** Audit writer; defaults to appendAudit(home, record, { now }). Injected so tests can capture lines. */
|
|
24
|
+
audit?: (record: AuditRecord) => Promise<unknown>;
|
|
25
|
+
now?: () => Date;
|
|
26
|
+
/** When given, only these names are considered (the store uses it to migrate one keystore on unlock). */
|
|
27
|
+
only?: readonly string[];
|
|
28
|
+
}): Promise<KeystoreMigration>;
|
|
29
|
+
//# sourceMappingURL=vault-migrate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vault-migrate.d.ts","sourceRoot":"","sources":["../src/vault-migrate.ts"],"names":[],"mappings":"AAeA,OAAO,EAAe,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAG3D,OAAO,EAAc,KAAK,KAAK,EAAqB,MAAM,YAAY,CAAC;AAGvE,eAAO,MAAM,kBAAkB,qBAAqB,CAAC;AACrD,MAAM,MAAM,mBAAmB,GAAG,mBAAmB,GAAG,YAAY,GAAG,YAAY,CAAC;AACpF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,mBAAmB,CAAA;KAAE,EAAE,CAAC;CAC1D,CAAC;AACF,gHAAgH;AAChH,MAAM,MAAM,kBAAkB,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;AAE/E;;;GAGG;AACH,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAczE;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,KAAK,CAAC;IACb,iBAAiB,EAAE,kBAAkB,CAAC;IACtC,yGAAyG;IACzG,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAClD,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;IACjB,yGAAyG;IACzG,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1B,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAwF7B"}
|
package/dist/vault.d.ts
ADDED
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { type VapiPaymentAccount } from "./keystore.js";
|
|
2
|
+
export type VaultAccount = {
|
|
3
|
+
name: string;
|
|
4
|
+
kind: "derived";
|
|
5
|
+
index: number;
|
|
6
|
+
address: `0x${string}`;
|
|
7
|
+
createdAt: string;
|
|
8
|
+
} | {
|
|
9
|
+
name: string;
|
|
10
|
+
kind: "imported";
|
|
11
|
+
address: `0x${string}`;
|
|
12
|
+
createdAt: string;
|
|
13
|
+
};
|
|
14
|
+
export type VaultFile = {
|
|
15
|
+
version: 2;
|
|
16
|
+
kdf: "device-key";
|
|
17
|
+
cipher: "aes-256-gcm";
|
|
18
|
+
phrase: string;
|
|
19
|
+
accounts: (VaultAccount & {
|
|
20
|
+
key?: string;
|
|
21
|
+
})[];
|
|
22
|
+
/** Monotonic high-water mark; absent in vaults written before account removal was supported. */
|
|
23
|
+
nextDerivedIndex?: number;
|
|
24
|
+
protected: boolean;
|
|
25
|
+
wrappedKey?: string;
|
|
26
|
+
};
|
|
27
|
+
export type VaultErrorCode = "not_found" | "name_taken" | "has_balance" | "bad_key" | "corrupt" | "already_protected" | "not_protected" | "password_required";
|
|
28
|
+
export declare class VaultError extends Error {
|
|
29
|
+
readonly code: VaultErrorCode;
|
|
30
|
+
constructor(code: VaultErrorCode, message: string, options?: ErrorOptions);
|
|
31
|
+
}
|
|
32
|
+
export type VaultOptions = {
|
|
33
|
+
path: string;
|
|
34
|
+
key: Uint8Array;
|
|
35
|
+
/** Chain read used by removeAccount; removal fails closed when it is absent. */
|
|
36
|
+
balanceOf?: (address: `0x${string}`) => Promise<bigint>;
|
|
37
|
+
/** Injected clock for createdAt; defaults to () => new Date(). */
|
|
38
|
+
now?: () => Date;
|
|
39
|
+
};
|
|
40
|
+
export interface Vault {
|
|
41
|
+
accounts(): VaultAccount[];
|
|
42
|
+
deriveAccount(name: string): Promise<VaultAccount>;
|
|
43
|
+
importAccount(name: string, privateKey: `0x${string}`): Promise<VaultAccount>;
|
|
44
|
+
removeAccount(name: string): Promise<void>;
|
|
45
|
+
rename(from: string, to: string): Promise<void>;
|
|
46
|
+
signer(name: string): Promise<VapiPaymentAccount>;
|
|
47
|
+
phrase(): Promise<string>;
|
|
48
|
+
save(): Promise<void>;
|
|
49
|
+
}
|
|
50
|
+
type StoredDerivedAccount = Extract<VaultAccount, {
|
|
51
|
+
kind: "derived";
|
|
52
|
+
}>;
|
|
53
|
+
type StoredImportedAccount = Extract<VaultAccount, {
|
|
54
|
+
kind: "imported";
|
|
55
|
+
}> & {
|
|
56
|
+
key: string;
|
|
57
|
+
};
|
|
58
|
+
type StoredAccount = StoredDerivedAccount | StoredImportedAccount;
|
|
59
|
+
export type StoredVaultFile = Omit<VaultFile, "accounts"> & {
|
|
60
|
+
accounts: StoredAccount[];
|
|
61
|
+
};
|
|
62
|
+
export type StoredVaultAccount = StoredVaultFile["accounts"][number];
|
|
63
|
+
export declare function createVault(args: VaultOptions & {
|
|
64
|
+
phrase?: string;
|
|
65
|
+
}): Promise<Vault>;
|
|
66
|
+
export declare function openVault(args: VaultOptions): Promise<Vault>;
|
|
67
|
+
/**
|
|
68
|
+
* Puts a stored account record back into the vault under the vault lock: the exact
|
|
69
|
+
* record `readVaultFileUnlocked` returned before `removeAccount` took it out.
|
|
70
|
+
* Refuses (VaultError "name_taken") a name that is already present or, for a
|
|
71
|
+
* derived record, an index already in use; refuses ("bad_key") an imported record
|
|
72
|
+
* whose key does not decrypt to its address with this device key. Returns the
|
|
73
|
+
* public VaultAccount.
|
|
74
|
+
*/
|
|
75
|
+
export declare function reinstateVaultAccount(args: {
|
|
76
|
+
path: string;
|
|
77
|
+
key: Uint8Array;
|
|
78
|
+
account: StoredVaultAccount;
|
|
79
|
+
}): Promise<VaultAccount>;
|
|
80
|
+
/** Human-only: opens the vault and returns the recovery phrase. Re-exported ONLY from secrets.ts. */
|
|
81
|
+
export declare function exportVaultPhrase(args: VaultOptions): Promise<string>;
|
|
82
|
+
/** Human-only: decrypts one named account's private key. Re-exported ONLY from secrets.ts. */
|
|
83
|
+
export declare function exportVaultAccountKey(args: {
|
|
84
|
+
path: string;
|
|
85
|
+
key: Uint8Array;
|
|
86
|
+
name: string;
|
|
87
|
+
}): Promise<`0x${string}`>;
|
|
88
|
+
/**
|
|
89
|
+
* One swarm member's own private key, for a member bundle that runs it on a
|
|
90
|
+
* remote sandbox. It is `exportVaultAccountKey` under the name the remote path
|
|
91
|
+
* uses: one account, never the phrase. Which accounts may leave the machine is
|
|
92
|
+
* the caller's policy; this function refuses nothing beyond an unknown name.
|
|
93
|
+
*/
|
|
94
|
+
export declare function exportMemberKey(args: {
|
|
95
|
+
path: string;
|
|
96
|
+
key: Uint8Array;
|
|
97
|
+
name: string;
|
|
98
|
+
}): Promise<`0x${string}`>;
|
|
99
|
+
export declare function readVaultFileUnlocked(path: string): Promise<StoredVaultFile>;
|
|
100
|
+
export declare function writeVaultFile(path: string, file: StoredVaultFile): Promise<void>;
|
|
101
|
+
/** Serializes vault read-modify-write transactions across CLI and MCP processes. */
|
|
102
|
+
export declare function withVaultLock<T>(path: string, operation: () => Promise<T>): Promise<T>;
|
|
103
|
+
export {};
|
|
104
|
+
//# sourceMappingURL=vault.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vault.d.ts","sourceRoot":"","sources":["../src/vault.ts"],"names":[],"mappings":"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"}
|
package/dist/wallet-store.d.ts
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
+
import { type AuditRecord } from "./audit.js";
|
|
2
3
|
import { type SpendCaps } from "./config.js";
|
|
3
4
|
import { type VapiPaymentAccount } from "./keystore.js";
|
|
4
|
-
import type
|
|
5
|
+
import { type SecretStore } from "./secret-store.js";
|
|
6
|
+
import { type PassphraseResolver } from "./vault-migrate.js";
|
|
5
7
|
import { type WalletName } from "./wallet-name.js";
|
|
6
8
|
export { DEFAULT_WALLET_NAME, isWalletName, walletNameSchema, WALLET_NAME_PATTERN, type WalletName, } from "./wallet-name.js";
|
|
7
9
|
export type AgentLink = {
|
|
@@ -19,7 +21,19 @@ export type RouterRefill = {
|
|
|
19
21
|
belowUsd: number;
|
|
20
22
|
tierUsd: RouterTopupTier;
|
|
21
23
|
};
|
|
22
|
-
|
|
24
|
+
declare const ceilingSweepPendingSchema: z.ZodObject<{
|
|
25
|
+
owner: z.ZodString;
|
|
26
|
+
target: z.ZodOptional<z.ZodString>;
|
|
27
|
+
amountAtomic: z.ZodString;
|
|
28
|
+
nonce: z.ZodString;
|
|
29
|
+
createdAt: z.ZodISODateTime;
|
|
30
|
+
status: z.ZodEnum<{
|
|
31
|
+
unknown: "unknown";
|
|
32
|
+
planned: "planned";
|
|
33
|
+
}>;
|
|
34
|
+
}, z.core.$strict>;
|
|
35
|
+
export type WalletCeilingSweepPending = z.infer<typeof ceilingSweepPendingSchema>;
|
|
36
|
+
/** What `wallets.json` records about one wallet. Keys live in the vault or a legacy keystore. */
|
|
23
37
|
export declare const walletEntrySchema: z.ZodObject<{
|
|
24
38
|
createdAt: z.ZodISODateTime;
|
|
25
39
|
label: z.ZodOptional<z.ZodString>;
|
|
@@ -27,6 +41,19 @@ export declare const walletEntrySchema: z.ZodObject<{
|
|
|
27
41
|
perCallAtomic: z.ZodString;
|
|
28
42
|
perDayAtomic: z.ZodString;
|
|
29
43
|
}, z.core.$strip>;
|
|
44
|
+
ceilingAtomic: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
45
|
+
ceilingSweepAttemptedAt: z.ZodOptional<z.ZodISODateTime>;
|
|
46
|
+
ceilingSweepPending: z.ZodOptional<z.ZodObject<{
|
|
47
|
+
owner: z.ZodString;
|
|
48
|
+
target: z.ZodOptional<z.ZodString>;
|
|
49
|
+
amountAtomic: z.ZodString;
|
|
50
|
+
nonce: z.ZodString;
|
|
51
|
+
createdAt: z.ZodISODateTime;
|
|
52
|
+
status: z.ZodEnum<{
|
|
53
|
+
unknown: "unknown";
|
|
54
|
+
planned: "planned";
|
|
55
|
+
}>;
|
|
56
|
+
}, z.core.$strict>>;
|
|
30
57
|
routerRefill: z.ZodOptional<z.ZodType<RouterRefill, unknown, z.core.$ZodTypeInternals<RouterRefill, unknown>>>;
|
|
31
58
|
link: z.ZodOptional<z.ZodType<AgentLink, unknown, z.core.$ZodTypeInternals<AgentLink, unknown>>>;
|
|
32
59
|
}, z.core.$strip>;
|
|
@@ -40,12 +67,29 @@ export declare const walletRegistrySchema: z.ZodObject<{
|
|
|
40
67
|
perCallAtomic: z.ZodString;
|
|
41
68
|
perDayAtomic: z.ZodString;
|
|
42
69
|
}, z.core.$strip>;
|
|
70
|
+
ceilingAtomic: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
71
|
+
ceilingSweepAttemptedAt: z.ZodOptional<z.ZodISODateTime>;
|
|
72
|
+
ceilingSweepPending: z.ZodOptional<z.ZodObject<{
|
|
73
|
+
owner: z.ZodString;
|
|
74
|
+
target: z.ZodOptional<z.ZodString>;
|
|
75
|
+
amountAtomic: z.ZodString;
|
|
76
|
+
nonce: z.ZodString;
|
|
77
|
+
createdAt: z.ZodISODateTime;
|
|
78
|
+
status: z.ZodEnum<{
|
|
79
|
+
unknown: "unknown";
|
|
80
|
+
planned: "planned";
|
|
81
|
+
}>;
|
|
82
|
+
}, z.core.$strict>>;
|
|
43
83
|
routerRefill: z.ZodOptional<z.ZodType<RouterRefill, unknown, z.core.$ZodTypeInternals<RouterRefill, unknown>>>;
|
|
44
84
|
link: z.ZodOptional<z.ZodType<AgentLink, unknown, z.core.$ZodTypeInternals<AgentLink, unknown>>>;
|
|
45
85
|
}, z.core.$strip>>;
|
|
46
86
|
}, z.core.$strip>;
|
|
47
87
|
export type WalletEntry = z.infer<typeof walletEntrySchema>;
|
|
48
88
|
export type WalletRegistry = z.infer<typeof walletRegistrySchema>;
|
|
89
|
+
export type WalletCeilingCaps = {
|
|
90
|
+
ceilingAtomic: bigint | null;
|
|
91
|
+
effectiveCeilingAtomic: bigint | null;
|
|
92
|
+
};
|
|
49
93
|
/** How a caller names the wallet it wants; every field is optional. */
|
|
50
94
|
export type WalletSelection = {
|
|
51
95
|
/** An explicit name, from `--wallet` or an MCP argument. */
|
|
@@ -69,7 +113,7 @@ export type WalletInfo = ResolvedWallet & {
|
|
|
69
113
|
};
|
|
70
114
|
export type CreatedWallet = ResolvedWallet & {
|
|
71
115
|
account: VapiPaymentAccount;
|
|
72
|
-
recoveryPhrase
|
|
116
|
+
recoveryPhrase?: string;
|
|
73
117
|
};
|
|
74
118
|
export type ImportedWallet = ResolvedWallet & {
|
|
75
119
|
account: VapiPaymentAccount;
|
|
@@ -82,27 +126,46 @@ export type TrashedWallet = {
|
|
|
82
126
|
};
|
|
83
127
|
/** Reads the USDC balance of an address, so `remove` can refuse a funded wallet. */
|
|
84
128
|
export type WalletBalanceReader = (address: string) => Promise<bigint>;
|
|
129
|
+
type WalletRenameOptions = {
|
|
130
|
+
secrets?: SecretStore;
|
|
131
|
+
serialize?: <T>(operation: () => Promise<T>) => Promise<T>;
|
|
132
|
+
};
|
|
133
|
+
type WalletRemoveOptions = {
|
|
134
|
+
force?: boolean;
|
|
135
|
+
balanceReader?: WalletBalanceReader;
|
|
136
|
+
allowDefault?: boolean;
|
|
137
|
+
};
|
|
85
138
|
export type WalletStoreOptions = {
|
|
86
139
|
/** Injected clock, so `createdAt` is deterministic in tests. */
|
|
87
140
|
now?: () => Date;
|
|
141
|
+
/** OS secret store holding the device vault key and optional legacy passphrases. */
|
|
142
|
+
secrets?: SecretStore;
|
|
143
|
+
/** Environment used for vault and legacy-keystore passwords. */
|
|
144
|
+
env?: NodeJS.ProcessEnv;
|
|
145
|
+
/** Resolves a 0.5 keystore passphrase without prompting. */
|
|
146
|
+
resolvePassphrase?: PassphraseResolver;
|
|
147
|
+
/** Writes migration audit records. */
|
|
148
|
+
audit?: (record: AuditRecord) => Promise<unknown>;
|
|
88
149
|
};
|
|
89
150
|
export type LayoutMigration = {
|
|
90
151
|
moved: boolean;
|
|
91
152
|
from?: string;
|
|
92
153
|
to?: string;
|
|
93
154
|
};
|
|
155
|
+
export declare const VAULT_LOCKED_MESSAGE = "The vault is locked. Run vapi vault unlock, or set VAPI_VAULT_PASSWORD.";
|
|
94
156
|
/**
|
|
95
|
-
* The wallets on this machine:
|
|
96
|
-
*
|
|
97
|
-
* keystore files; the store only moves, names and caps them.
|
|
157
|
+
* The wallets on this machine: a vault of keys, a registry of settings, and the
|
|
158
|
+
* rules for picking the wallet a command acts on.
|
|
98
159
|
*
|
|
99
160
|
* Layout under the config home (`~/.vapi`, or `VAPI_HOME`):
|
|
100
161
|
*
|
|
101
162
|
* ```
|
|
163
|
+
* vault.json encrypted device vault and named accounts
|
|
102
164
|
* wallets.json registry: default wallet, per-wallet caps and labels
|
|
103
|
-
* wallets/<name>.json
|
|
104
|
-
* wallets
|
|
105
|
-
*
|
|
165
|
+
* wallets/<name>.json 0.5 keystores awaiting migration
|
|
166
|
+
* wallets.migrated/ migrated 0.5 keystores, retained as encrypted backups
|
|
167
|
+
* wallets/.trash/ removed accounts and their registry sidecars
|
|
168
|
+
* audit.log append-only local audit trail
|
|
106
169
|
* ```
|
|
107
170
|
*/
|
|
108
171
|
export declare class WalletStore {
|
|
@@ -110,13 +173,20 @@ export declare class WalletStore {
|
|
|
110
173
|
readonly home: string;
|
|
111
174
|
private readonly options;
|
|
112
175
|
private registry;
|
|
176
|
+
private readonly secrets;
|
|
177
|
+
private readonly environment;
|
|
178
|
+
private readonly passphraseResolver;
|
|
179
|
+
private readonly audit;
|
|
180
|
+
private cachedVault;
|
|
181
|
+
private vaultKey;
|
|
182
|
+
private balanceProbe;
|
|
113
183
|
private constructor();
|
|
114
184
|
/** Opens the store, migrating a 0.2.x single-keystore home on the way. */
|
|
115
185
|
static open(home?: string, options?: WalletStoreOptions): Promise<WalletStore>;
|
|
116
186
|
get registryPath(): string;
|
|
117
187
|
get walletsDirectory(): string;
|
|
118
188
|
get trashDirectory(): string;
|
|
119
|
-
/** The keystore path of a wallet, whether or not it exists
|
|
189
|
+
/** The legacy 0.5 keystore path of a wallet, whether or not it exists. */
|
|
120
190
|
pathFor(name: string): string;
|
|
121
191
|
/** The names this machine knows, in registry order. */
|
|
122
192
|
names(): WalletName[];
|
|
@@ -126,9 +196,11 @@ export declare class WalletStore {
|
|
|
126
196
|
hasRegistry(): boolean;
|
|
127
197
|
entry(name: string): WalletEntry | undefined;
|
|
128
198
|
has(name: string): boolean;
|
|
199
|
+
/** True only when the device vault currently contains an account with this name. */
|
|
200
|
+
hasVaultAccount(name: string): Promise<boolean>;
|
|
129
201
|
/** A copy of the registry as it was last read or written. */
|
|
130
202
|
snapshot(): WalletRegistry;
|
|
131
|
-
/** Re-reads `wallets.json` from disk. */
|
|
203
|
+
/** Re-reads `wallets.json` from disk and drops the process-local vault cache. */
|
|
132
204
|
reload(): Promise<WalletRegistry>;
|
|
133
205
|
/**
|
|
134
206
|
* Picks the wallet a command acts on: an explicit name first, then
|
|
@@ -140,72 +212,90 @@ export declare class WalletStore {
|
|
|
140
212
|
/** The stored Base address of a wallet, without its passphrase. */
|
|
141
213
|
readAddress(name: string): Promise<string | undefined>;
|
|
142
214
|
/**
|
|
143
|
-
* Creates a
|
|
144
|
-
* on a machine also becomes the default.
|
|
145
|
-
*
|
|
215
|
+
* Creates a vault account from a fresh or supplied recovery phrase. The first
|
|
216
|
+
* wallet on a machine also becomes the default. `passphrase` and
|
|
217
|
+
* `enableSolana` are accepted and ignored for one release. Every derived
|
|
218
|
+
* account returns the vault's shared phrase to preserve this method's public
|
|
219
|
+
* contract; callers decide whether their current flow may display it.
|
|
146
220
|
*/
|
|
147
221
|
create(name: string, passphrase: string, options?: {
|
|
148
222
|
phrase?: string;
|
|
149
223
|
enableSolana?: boolean;
|
|
150
224
|
label?: string;
|
|
151
225
|
spendCaps?: SpendCaps;
|
|
152
|
-
}): Promise<CreatedWallet
|
|
153
|
-
|
|
226
|
+
}): Promise<CreatedWallet & {
|
|
227
|
+
recoveryPhrase: string;
|
|
228
|
+
}>;
|
|
229
|
+
/** Imports a private key into the vault. `passphrase` is ignored for one release. */
|
|
154
230
|
importKey(name: string, passphrase: string, privateKey: string, options?: {
|
|
155
231
|
label?: string;
|
|
156
232
|
spendCaps?: SpendCaps;
|
|
157
233
|
}): Promise<ImportedWallet>;
|
|
158
|
-
/**
|
|
234
|
+
/** Returns one wallet's vault signer, migrating its legacy keystore if needed. */
|
|
159
235
|
unlock(name: string, passphrase: string): Promise<VapiPaymentAccount>;
|
|
160
236
|
setDefault(name: string): Promise<WalletRegistry>;
|
|
161
237
|
setSpendCaps(name: string, caps: SpendCaps): Promise<WalletEntry>;
|
|
238
|
+
/** Stores an explicit atomic ceiling, or null to disable automatic sweeps. */
|
|
239
|
+
setCeiling(name: string, ceilingAtomic: bigint | null): Promise<WalletEntry>;
|
|
240
|
+
/** Updates a ceiling from the latest value while holding the registry write lock. */
|
|
241
|
+
updateCeiling(name: string, update: (current: bigint | null) => bigint | null): Promise<WalletEntry>;
|
|
242
|
+
/** Reads the configured ceiling and the per-day-cap floor for one wallet. */
|
|
243
|
+
ceilingCaps(name: string): WalletCeilingCaps;
|
|
244
|
+
/**
|
|
245
|
+
* Atomically claims the ten-minute sweep window. The timestamp is written
|
|
246
|
+
* before authorization work, so failed attempts consume the window too.
|
|
247
|
+
*/
|
|
248
|
+
claimCeilingSweepAttempt(name: string, now: Date, guardMs?: number): Promise<boolean>;
|
|
249
|
+
/** Reads the durable authorization plan used to resume an uncertain sweep. */
|
|
250
|
+
ceilingSweepPending(name: string): WalletCeilingSweepPending | undefined;
|
|
251
|
+
/** Updates an uncertain sweep from the latest registry value under its lock. */
|
|
252
|
+
updateCeilingSweepPending(name: string, update: (current: Readonly<WalletCeilingSweepPending> | undefined) => WalletCeilingSweepPending | undefined): Promise<WalletCeilingSweepPending | undefined>;
|
|
253
|
+
/** Updates spend caps from the latest registry value while holding its write lock. */
|
|
254
|
+
updateSpendCaps(name: string, update: (current: Readonly<SpendCaps>) => SpendCaps): Promise<WalletEntry>;
|
|
255
|
+
/** Atomically keeps the stricter current or planned provisioning limit in every field. */
|
|
256
|
+
lowerProvisioningLimits(name: string, plannedCaps: SpendCaps, plannedCeilingAtomic: bigint | null): Promise<WalletEntry>;
|
|
162
257
|
setRouterRefill(name: string, refill: RouterRefill | null): Promise<WalletEntry>;
|
|
163
258
|
/** Sets or, with `undefined`, clears the human label of a wallet. */
|
|
164
259
|
setLabel(name: string, label: string | undefined): Promise<WalletEntry>;
|
|
165
260
|
setLink(name: WalletName, link: AgentLink): Promise<WalletEntry>;
|
|
166
261
|
clearLink(name: WalletName): Promise<WalletEntry>;
|
|
167
262
|
/**
|
|
168
|
-
* Renames a wallet everywhere its name is recorded: the
|
|
169
|
-
* registry, and the wallet field of its receipts.
|
|
170
|
-
* moved untouched.
|
|
263
|
+
* Renames a wallet everywhere its name is recorded: the vault or legacy
|
|
264
|
+
* keystore, the registry, and the wallet field of its receipts.
|
|
171
265
|
*/
|
|
172
|
-
rename(oldName: string, newName: string, options?:
|
|
173
|
-
|
|
174
|
-
}): Promise<ResolvedWallet>;
|
|
266
|
+
rename(oldName: string, newName: string, options?: WalletRenameOptions): Promise<ResolvedWallet>;
|
|
267
|
+
private renameWithMovementLocksHeld;
|
|
175
268
|
/**
|
|
176
|
-
* Moves a wallet's
|
|
177
|
-
*
|
|
178
|
-
*
|
|
269
|
+
* Moves a wallet's encrypted vault record or legacy keystore to
|
|
270
|
+
* `wallets/.trash/`. The default wallet and a wallet that still holds USDC
|
|
271
|
+
* are refused unless forced.
|
|
179
272
|
*
|
|
180
273
|
* `allowDefault` exists for one caller: `vapi import --replace`, which puts a
|
|
181
274
|
* new wallet under the same name back in place immediately afterwards, so the
|
|
182
275
|
* machine is never left without a default. `vapi wallet remove` never sets it.
|
|
183
276
|
*/
|
|
184
|
-
remove(name: string, options?:
|
|
185
|
-
|
|
186
|
-
balanceReader?: WalletBalanceReader;
|
|
187
|
-
allowDefault?: boolean;
|
|
188
|
-
}): Promise<TrashedWallet>;
|
|
277
|
+
remove(name: string, options?: WalletRemoveOptions): Promise<TrashedWallet>;
|
|
278
|
+
private removeWithMovementLockHeld;
|
|
189
279
|
/** Brings the most recently removed wallet of that name back. */
|
|
190
280
|
restore(name: string): Promise<ResolvedWallet>;
|
|
281
|
+
private restoreWithAccountMutationLockHeld;
|
|
191
282
|
/** Every removed wallet still in the trash, newest first. */
|
|
192
283
|
listTrash(): Promise<TrashedWallet[]>;
|
|
193
284
|
/**
|
|
194
285
|
* Moves a 0.2.x home into the wallet layout, once: `keystore.json` becomes
|
|
195
|
-
* `wallets/main.json
|
|
196
|
-
*
|
|
197
|
-
* are never rewritten, and a home without a keystore migrates nothing.
|
|
286
|
+
* `wallets/main.json`, ready for vault migration. The keystore contents are
|
|
287
|
+
* never rewritten, and a home without a keystore migrates nothing.
|
|
198
288
|
*/
|
|
199
289
|
migrateLegacyLayout(): Promise<LayoutMigration>;
|
|
200
290
|
private now;
|
|
201
291
|
private newEntry;
|
|
202
292
|
private prepareNewWallet;
|
|
203
293
|
private registerWallet;
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
private
|
|
294
|
+
private get vaultPath();
|
|
295
|
+
private readVaultUnlocked;
|
|
296
|
+
private registerMissingVaultAccounts;
|
|
297
|
+
private openVault;
|
|
298
|
+
private dropVaultCache;
|
|
209
299
|
private update;
|
|
210
300
|
private readRegistry;
|
|
211
301
|
private writeRegistry;
|
|
@@ -215,6 +305,12 @@ export declare class WalletStore {
|
|
|
215
305
|
* registry yet — the legacy `config.spendCaps`, and otherwise the defaults.
|
|
216
306
|
*/
|
|
217
307
|
export declare function spendCapsForWallet(store: WalletStore, name?: WalletName): Promise<SpendCaps>;
|
|
308
|
+
/** Formats atomic USDC without floating point for JSON-facing cap objects. */
|
|
309
|
+
export declare function formatCeilingUsd(ceilingAtomic: bigint | null): string;
|
|
310
|
+
/** The JSON fragment used by account and caps output. */
|
|
311
|
+
export declare function ceilingCapsJson(caps: Pick<WalletCeilingCaps, "ceilingAtomic">): {
|
|
312
|
+
ceilingUsd: string;
|
|
313
|
+
};
|
|
218
314
|
/** Rejects anything that is not a wallet name, including path traversal. */
|
|
219
315
|
export declare function assertWalletName(value: string): WalletName;
|
|
220
316
|
//# sourceMappingURL=wallet-store.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wallet-store.d.ts","sourceRoot":"","sources":["../src/wallet-store.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"wallet-store.d.ts","sourceRoot":"","sources":["../src/wallet-store.ts"],"names":[],"mappings":"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"}
|
package/dist/x402-pay.d.ts
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
|
+
import { type CeilingSweepHook } from "./ceiling.js";
|
|
2
|
+
import type { RunRef } from "./agent-run.js";
|
|
1
3
|
import type { SpendCaps, VapiConfig } from "./config.js";
|
|
2
4
|
import type { VapiPaymentAccount } from "./keystore.js";
|
|
3
5
|
import { type LookupFn } from "./net-guard.js";
|
|
4
6
|
import { type Receipt } from "./receipts.js";
|
|
7
|
+
import { type RunBudget } from "./run-budget.js";
|
|
5
8
|
import type { WalletName } from "./wallet-name.js";
|
|
6
9
|
import { type X402Quote, type X402SettlementOutcome } from "./x402.js";
|
|
7
10
|
export type PayRequestArgs = {
|
|
@@ -20,9 +23,14 @@ export type PayRequestArgs = {
|
|
|
20
23
|
preferNetworks?: string[];
|
|
21
24
|
paymentId?: string;
|
|
22
25
|
now?: Date;
|
|
26
|
+
allowanceExpiresAt?: Date;
|
|
23
27
|
nowMs?: () => number;
|
|
24
28
|
source?: string;
|
|
25
29
|
lookup?: LookupFn;
|
|
30
|
+
/** Optional settled-call hook; omitted or false keeps payment tests and custom SDK flows inert. */
|
|
31
|
+
ceilingSweep?: CeilingSweepHook | false;
|
|
32
|
+
runBudget?: RunBudget;
|
|
33
|
+
run?: RunRef;
|
|
26
34
|
};
|
|
27
35
|
export type PayRequestResult = {
|
|
28
36
|
response: Response;
|
|
@@ -101,9 +109,13 @@ export type CompleteX402PaymentArgs<T = undefined> = {
|
|
|
101
109
|
expectedPayTo?: string;
|
|
102
110
|
paymentId?: string;
|
|
103
111
|
now?: Date;
|
|
112
|
+
allowanceExpiresAt?: Date;
|
|
104
113
|
nowMs?: () => number;
|
|
105
114
|
quoteStartedMs?: number;
|
|
106
115
|
trace?: X402PaymentTrace;
|
|
116
|
+
/** Runs only after a successful, decisively settled paid result is ready. */
|
|
117
|
+
ceilingSweep?: CeilingSweepHook | false;
|
|
118
|
+
runBudget?: RunBudget;
|
|
107
119
|
};
|
|
108
120
|
export type CompleteX402PaymentResult<T = undefined> = {
|
|
109
121
|
response: Response;
|
package/dist/x402-pay.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"x402-pay.d.ts","sourceRoot":"","sources":["../src/x402-pay.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAsC,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAEnF,OAAO,EAAiB,KAAK,OAAO,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"x402-pay.d.ts","sourceRoot":"","sources":["../src/x402-pay.ts"],"names":[],"mappings":"AAEA,OAAO,EAAwB,KAAK,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAC3E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAsC,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAEnF,OAAO,EAAiB,KAAK,OAAO,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,EAAkB,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAGjE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAUL,KAAK,SAAS,EACd,KAAK,qBAAqB,EAC3B,MAAM,WAAW,CAAC;AAEnB,MAAM,MAAM,cAAc,GAAG;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,kBAAkB,CAAC;IAC5B,MAAM,EAAE,UAAU,CAAC;IACnB,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE,UAAU,CAAC;IACnB,SAAS,EAAE,OAAO,KAAK,CAAC;IACxB,KAAK,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACvD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,IAAI,CAAC;IACX,kBAAkB,CAAC,EAAE,IAAI,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,QAAQ,CAAC;IAClB,mGAAmG;IACnG,YAAY,CAAC,EAAE,gBAAgB,GAAG,KAAK,CAAC;IACxC,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAAE,QAAQ,EAAE,QAAQ,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC;AAExE,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,EAAE,QAAQ,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,IAAI,IAAI,CAAC;IACf,OAAO,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;CACnE,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE;QACN,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,KAAK,CAAC,EAAE,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,WAAW,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC;IACtD,UAAU,CAAC,EAAE,WAAW,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;IAChD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF,qBAAa,gBAAiB,SAAQ,KAAK;aAIvB,IAAI,EAAE,kBAAkB,GAAG,qBAAqB,GAAG,oBAAoB;aAEvE,kBAAkB,CAAC,EAAE,sBAAsB;IAL7D,QAAQ,CAAC,IAAI,sBAAsB;gBAGjB,IAAI,EAAE,kBAAkB,GAAG,qBAAqB,GAAG,oBAAoB,EACvF,OAAO,EAAE,MAAM,EACC,kBAAkB,CAAC,EAAE,sBAAsB,YAAA,EAC3D,OAAO,CAAC,EAAE,YAAY,GAAG;QACvB,gBAAgB,CAAC,EAAE;YAAE,UAAU,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,OAAO,CAAA;SAAE,CAAC;QAC5D,mBAAmB,CAAC,EAAE;YAAE,UAAU,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,OAAO,CAAA;SAAE,CAAC;KAChE;IAOH,QAAQ,CAAC,gBAAgB,CAAC,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IACrE,QAAQ,CAAC,mBAAmB,CAAC,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;CACzE;AAED,MAAM,MAAM,uBAAuB,CAAC,CAAC,GAAG,SAAS,IAAI;IACnD,SAAS,EAAE,kBAAkB,CAAC;IAC9B,OAAO,EAAE,kBAAkB,CAAC;IAC5B,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE,UAAU,CAAC;IACnB,IAAI,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACpD,eAAe,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IACrD,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC9B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,IAAI,CAAC;IACX,kBAAkB,CAAC,EAAE,IAAI,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,gBAAgB,CAAC;IACzB,6EAA6E;IAC7E,YAAY,CAAC,EAAE,gBAAgB,GAAG,KAAK,CAAC;IACxC,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,yBAAyB,CAAC,CAAC,GAAG,SAAS,IAAI;IACrD,QAAQ,EAAE,QAAQ,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,CAAC,GAAG,SAAS,CAAC;IACpB,KAAK,EAAE,SAAS,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,OAAO,GAAG,IAAI,CAAC;IAC3B,iBAAiB,EAAE,qBAAqB,CAAC;CAC1C,CAAC;AAEF;;;;;GAKG;AACH,wBAAsB,UAAU,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAiFhF;AAED;;;;GAIG;AACH,wBAAsB,mBAAmB,CAAC,CAAC,GAAG,SAAS,EACrD,IAAI,EAAE,uBAAuB,CAAC,CAAC,CAAC,GAC/B,OAAO,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC,CA6OvC"}
|
package/dist/x402.d.ts
CHANGED
|
@@ -147,6 +147,7 @@ export declare function buildEip3009TypedData(args: {
|
|
|
147
147
|
quote: X402Quote;
|
|
148
148
|
nonce: Hex;
|
|
149
149
|
nowSeconds: number;
|
|
150
|
+
maximumValidBeforeSeconds?: number;
|
|
150
151
|
}): {
|
|
151
152
|
authorization: Eip3009Authorization;
|
|
152
153
|
typedData: X402TypedData;
|
|
@@ -155,6 +156,7 @@ export declare function buildX402Payment(args: {
|
|
|
155
156
|
signer: X402Signer;
|
|
156
157
|
quote: X402Quote;
|
|
157
158
|
nowSeconds?: number;
|
|
159
|
+
maximumValidBeforeSeconds?: number;
|
|
158
160
|
nonce?: Hex;
|
|
159
161
|
fetchImpl?: typeof fetch;
|
|
160
162
|
paymentId?: string;
|
|
@@ -168,6 +170,7 @@ export declare function buildCompatibleX402Payment(args: {
|
|
|
168
170
|
account: X402Signer;
|
|
169
171
|
quote: X402Quote;
|
|
170
172
|
nowSeconds?: number;
|
|
173
|
+
maximumValidBeforeSeconds?: number;
|
|
171
174
|
nonce?: Hex;
|
|
172
175
|
fetchImpl?: typeof fetch;
|
|
173
176
|
paymentId?: string;
|