@pay-skill/sdk 0.1.8 → 0.1.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/README.md +80 -91
  2. package/dist/auth.d.ts +11 -6
  3. package/dist/auth.d.ts.map +1 -1
  4. package/dist/auth.js +19 -7
  5. package/dist/auth.js.map +1 -1
  6. package/dist/errors.d.ts +4 -2
  7. package/dist/errors.d.ts.map +1 -1
  8. package/dist/errors.js +8 -3
  9. package/dist/errors.js.map +1 -1
  10. package/dist/index.d.ts +2 -13
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js +1 -6
  13. package/dist/index.js.map +1 -1
  14. package/dist/keychain.d.ts +8 -0
  15. package/dist/keychain.d.ts.map +1 -0
  16. package/dist/keychain.js +17 -0
  17. package/dist/keychain.js.map +1 -0
  18. package/dist/wallet.d.ts +135 -104
  19. package/dist/wallet.d.ts.map +1 -1
  20. package/dist/wallet.js +683 -280
  21. package/dist/wallet.js.map +1 -1
  22. package/jsr.json +1 -1
  23. package/package.json +5 -2
  24. package/src/auth.ts +28 -18
  25. package/src/errors.ts +10 -3
  26. package/src/index.ts +12 -39
  27. package/src/keychain.ts +18 -0
  28. package/src/wallet.ts +1074 -355
  29. package/tests/test_auth_rejection.ts +43 -95
  30. package/tests/test_crypto.ts +59 -172
  31. package/tests/test_e2e.ts +46 -105
  32. package/tests/test_errors.ts +9 -1
  33. package/tests/test_ows.ts +153 -0
  34. package/tests/test_wallet.ts +194 -0
  35. package/dist/client.d.ts +0 -94
  36. package/dist/client.d.ts.map +0 -1
  37. package/dist/client.js +0 -443
  38. package/dist/client.js.map +0 -1
  39. package/dist/models.d.ts +0 -78
  40. package/dist/models.d.ts.map +0 -1
  41. package/dist/models.js +0 -2
  42. package/dist/models.js.map +0 -1
  43. package/dist/ows-signer.d.ts +0 -75
  44. package/dist/ows-signer.d.ts.map +0 -1
  45. package/dist/ows-signer.js +0 -130
  46. package/dist/ows-signer.js.map +0 -1
  47. package/dist/signer.d.ts +0 -46
  48. package/dist/signer.d.ts.map +0 -1
  49. package/dist/signer.js +0 -111
  50. package/dist/signer.js.map +0 -1
  51. package/src/client.ts +0 -644
  52. package/src/models.ts +0 -77
  53. package/src/ows-signer.ts +0 -223
  54. package/src/signer.ts +0 -147
  55. package/tests/test_ows_integration.ts +0 -92
  56. package/tests/test_ows_signer.ts +0 -365
  57. package/tests/test_signer.ts +0 -47
  58. package/tests/test_validation.ts +0 -66
package/dist/wallet.d.ts CHANGED
@@ -1,121 +1,152 @@
1
1
  /**
2
- * Wallet — high-level write client for agents.
3
- * Wraps PayClient with private key signing and balance tracking.
2
+ * Wallet — the single entry point for the pay SDK.
4
3
  *
5
- * This is the primary entry point for the playground and agent integrations.
6
- * The PayClient is lower-level (HTTP only); Wallet adds signing + state.
4
+ * Zero-config for agents: new Wallet() (reads PAYSKILL_KEY env)
5
+ * Explicit key: new Wallet({ privateKey: "0x..." })
6
+ * OS keychain (CLI key): await Wallet.create()
7
+ * OWS wallet extension: await Wallet.fromOws({ walletId: "..." })
7
8
  */
9
+ /** Dollar amount (default) or micro-USDC for precision. */
10
+ export type Amount = number | {
11
+ micro: number;
12
+ };
8
13
  export interface WalletOptions {
9
- privateKey: string;
10
- chain: string;
11
- apiUrl: string;
12
- routerAddress: string;
13
- /** Numeric chain ID for EIP-712 domain. If omitted, parsed from `chain`. */
14
- chainId?: number;
14
+ /** Hex private key. If omitted, reads from PAYSKILL_KEY env var. */
15
+ privateKey?: string;
16
+ /** Use Base Sepolia testnet. Default: false (mainnet). Also reads PAYSKILL_TESTNET env. */
17
+ testnet?: boolean;
18
+ /** Request timeout in ms. Default: 30000. */
19
+ timeout?: number;
20
+ }
21
+ export interface OwsWalletOptions {
22
+ /** OWS wallet name or UUID (e.g. "pay-my-agent"). */
23
+ walletId: string;
24
+ /** OWS API key token (passed as passphrase to OWS signing calls). */
25
+ owsApiKey?: string;
26
+ /** Use Base Sepolia testnet. Default: false (mainnet). */
27
+ testnet?: boolean;
28
+ /** Request timeout in ms. Default: 30000. */
29
+ timeout?: number;
30
+ /** @internal Inject OWS module for testing. */
31
+ _owsModule?: unknown;
32
+ }
33
+ export interface SendResult {
34
+ txHash: string;
35
+ status: string;
36
+ amount: number;
37
+ fee: number;
38
+ }
39
+ export interface Tab {
40
+ id: string;
41
+ provider: string;
42
+ amount: number;
43
+ balanceRemaining: number;
44
+ totalCharged: number;
45
+ chargeCount: number;
46
+ maxChargePerCall: number;
47
+ totalWithdrawn: number;
48
+ status: "open" | "closed";
49
+ pendingChargeCount: number;
50
+ pendingChargeTotal: number;
51
+ effectiveBalance: number;
52
+ }
53
+ export interface ChargeResult {
54
+ chargeId: string;
55
+ status: string;
56
+ }
57
+ export interface Balance {
58
+ total: number;
59
+ locked: number;
60
+ available: number;
61
+ }
62
+ export interface Status {
63
+ address: string;
64
+ balance: Balance;
65
+ openTabs: number;
66
+ }
67
+ export interface DiscoverService {
68
+ name: string;
69
+ description: string;
70
+ baseUrl: string;
71
+ category: string;
72
+ keywords: string[];
73
+ routes: {
74
+ path: string;
75
+ method?: string;
76
+ price?: string;
77
+ settlement?: string;
78
+ }[];
79
+ docsUrl?: string;
80
+ }
81
+ export interface DiscoverOptions {
82
+ sort?: string;
83
+ category?: string;
84
+ settlement?: string;
15
85
  }
16
86
  export interface FundLinkOptions {
17
- messages?: unknown[];
87
+ message?: string;
18
88
  agentName?: string;
19
89
  }
20
- export interface PermitResult {
21
- nonce: string;
22
- deadline: number;
23
- v: number;
24
- r: string;
25
- s: string;
90
+ export interface WebhookRegistration {
91
+ id: string;
92
+ url: string;
93
+ events: string[];
94
+ }
95
+ export interface MintResult {
96
+ txHash: string;
97
+ amount: number;
26
98
  }
99
+ export declare function discover(query?: string, options?: DiscoverOptions & {
100
+ testnet?: boolean;
101
+ }): Promise<DiscoverService[]>;
27
102
  export declare class Wallet {
103
+ #private;
28
104
  readonly address: string;
29
- private readonly _privateKey;
30
- private readonly _apiUrl;
31
- private readonly _chain;
32
- private readonly _chainId;
33
- private readonly _routerAddress;
34
- private readonly _account;
35
- /** URL path prefix extracted from apiUrl (e.g., "/api/v1"). */
36
- private readonly _basePath;
37
- /** Cached contracts response. */
38
- private _contractsCache;
39
- constructor(options: WalletOptions);
40
- private get _authConfig();
41
- /** Build authenticated fetch headers for an API request. */
42
- private _authFetch;
43
- /** Get USDC balance in human-readable units (e.g., 142.50). */
44
- balance(): Promise<number>;
45
105
  /**
46
- * Sign an EIP-2612 permit for a given spender and amount.
47
- * Uses the server's /permit/prepare endpoint to get the nonce and hash,
48
- * then signs the hash locally.
49
- * @param flow — "direct" or "tab" (used to look up the spender contract address)
50
- * @param amount — micro-USDC amount
106
+ * Sync constructor. Resolves key from: privateKey arg -> PAYSKILL_KEY env -> error.
107
+ * For OS keychain, use `await Wallet.create()`.
108
+ * For OWS, use `await Wallet.fromOws({ walletId })`.
51
109
  */
52
- signPermit(flow: string, amount: number): Promise<PermitResult>;
53
- /** Send a direct payment. Auto-signs permit if not provided. */
54
- payDirect(to: string, amount: number, memo: string, options?: {
55
- permit?: PermitResult;
56
- }): Promise<{
57
- tx_hash: string;
58
- status: string;
59
- }>;
60
- /** Create a one-time fund link via the server. Returns the dashboard URL. */
110
+ constructor(options?: WalletOptions);
111
+ /** Async factory. Resolves key from: privateKey arg -> OS keychain -> PAYSKILL_KEY env -> error. */
112
+ static create(options?: WalletOptions): Promise<Wallet>;
113
+ /** Sync factory. Reads key from PAYSKILL_KEY env var only. */
114
+ static fromEnv(options?: {
115
+ testnet?: boolean;
116
+ }): Wallet;
117
+ /** Async factory. Creates a wallet backed by an OWS (Open Wallet Standard) wallet. */
118
+ static fromOws(options: OwsWalletOptions): Promise<Wallet>;
119
+ private ensureContracts;
120
+ private authFetch;
121
+ private get;
122
+ private post;
123
+ private del;
124
+ private handleResponse;
125
+ private signPermit;
126
+ private parse402;
127
+ private handle402;
128
+ private settleViaDirect;
129
+ private settleViaTab;
130
+ send(to: string, amount: Amount, memo?: string): Promise<SendResult>;
131
+ openTab(provider: string, amount: Amount, maxChargePerCall: Amount): Promise<Tab>;
132
+ closeTab(tabId: string): Promise<Tab>;
133
+ topUpTab(tabId: string, amount: Amount): Promise<Tab>;
134
+ listTabs(): Promise<Tab[]>;
135
+ getTab(tabId: string): Promise<Tab>;
136
+ chargeTab(tabId: string, amount: Amount): Promise<ChargeResult>;
137
+ request(url: string, options?: {
138
+ method?: string;
139
+ body?: unknown;
140
+ headers?: Record<string, string>;
141
+ }): Promise<Response>;
142
+ balance(): Promise<Balance>;
143
+ status(): Promise<Status>;
144
+ discover(query?: string, options?: DiscoverOptions): Promise<DiscoverService[]>;
61
145
  createFundLink(options?: FundLinkOptions): Promise<string>;
62
- /** Create a one-time withdraw link via the server. Returns the dashboard URL. */
63
146
  createWithdrawLink(options?: FundLinkOptions): Promise<string>;
64
- /** Register a webhook for this wallet. */
65
- registerWebhook(url: string, events: string[], secret?: string): Promise<{
66
- id: string;
67
- }>;
68
- /** Open a tab with a provider (positional or object form). */
69
- openTab(providerOrOpts: string | {
70
- to: string;
71
- limit: number;
72
- perUnit: number;
73
- permit?: PermitResult;
74
- }, amount?: number, maxChargePerCall?: number, options?: {
75
- permit?: PermitResult;
76
- }): Promise<{
77
- id: string;
78
- tab_id: string;
79
- }>;
80
- /** Charge a tab (provider-side). */
81
- chargeTab(tabId: string, amountOrOpts: number | {
82
- amount: number;
83
- cumulative: number;
84
- callCount: number;
85
- providerSig: string;
86
- }): Promise<{
87
- status: string;
88
- }>;
89
- /** Close a tab. */
90
- closeTab(tabId: string, options?: {
91
- finalAmount?: number;
92
- providerSig?: string;
93
- }): Promise<{
94
- status: string;
95
- }>;
96
- /** Fetch contract addresses from the API (public, no auth). */
97
- getContracts(): Promise<{
98
- router: string;
99
- tab: string;
100
- direct: string;
101
- fee: string;
102
- usdc: string;
103
- chainId: number;
104
- }>;
105
- /** Sign a tab charge (provider-side EIP-712 signature). */
106
- signTabCharge(contractAddr: string, tabId: string, cumulativeUnits: bigint | number, callCount: number): Promise<string>;
107
- /** Sign a raw hash with the wallet's private key. */
108
- private _signHash;
109
- }
110
- /** PrivateKeySigner — for manual EIP-712 signing in the playground. */
111
- export declare class PrivateKeySigner {
112
- private readonly _account;
113
- readonly address: string;
114
- constructor(privateKey: string);
115
- /** Sign EIP-712 typed data. Returns hex signature. */
116
- signTypedData(domain: Record<string, unknown>, types: Record<string, Array<{
117
- name: string;
118
- type: string;
119
- }>>, message: Record<string, unknown>): Promise<string>;
147
+ registerWebhook(url: string, events?: string[], secret?: string): Promise<WebhookRegistration>;
148
+ listWebhooks(): Promise<WebhookRegistration[]>;
149
+ deleteWebhook(webhookId: string): Promise<void>;
150
+ mint(amount: Amount): Promise<MintResult>;
120
151
  }
121
152
  //# sourceMappingURL=wallet.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"wallet.d.ts","sourceRoot":"","sources":["../src/wallet.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wallet.d.ts","sourceRoot":"","sources":["../src/wallet.ts"],"names":[],"mappings":"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"}