nullpath-mcp 1.2.0 → 1.3.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/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,128 @@
1
+ /**
2
+ * EIP-3009: Transfer With Authorization for USDC
3
+ *
4
+ * Implements typed data structures and signing for USDC's
5
+ * TransferWithAuthorization function, enabling gasless transfers
6
+ * where a third party can submit the transaction.
7
+ *
8
+ * @see https://eips.ethereum.org/EIPS/eip-3009
9
+ */
10
+ import type { WalletClient } from 'viem';
11
+ /**
12
+ * USDC contract address on Base mainnet
13
+ */
14
+ export declare const USDC_ADDRESS_BASE: "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913";
15
+ /**
16
+ * USDC decimals (standard across all networks)
17
+ */
18
+ export declare const USDC_DECIMALS = 6;
19
+ /**
20
+ * EIP-712 Domain for USDC on Base
21
+ */
22
+ export declare const USDC_DOMAIN: {
23
+ readonly name: "USD Coin";
24
+ readonly version: "2";
25
+ readonly chainId: 8453;
26
+ readonly verifyingContract: "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913";
27
+ };
28
+ /**
29
+ * EIP-712 types for TransferWithAuthorization
30
+ */
31
+ export declare const TRANSFER_WITH_AUTHORIZATION_TYPES: {
32
+ readonly TransferWithAuthorization: readonly [{
33
+ readonly name: "from";
34
+ readonly type: "address";
35
+ }, {
36
+ readonly name: "to";
37
+ readonly type: "address";
38
+ }, {
39
+ readonly name: "value";
40
+ readonly type: "uint256";
41
+ }, {
42
+ readonly name: "validAfter";
43
+ readonly type: "uint256";
44
+ }, {
45
+ readonly name: "validBefore";
46
+ readonly type: "uint256";
47
+ }, {
48
+ readonly name: "nonce";
49
+ readonly type: "bytes32";
50
+ }];
51
+ };
52
+ /**
53
+ * Parameters for TransferWithAuthorization
54
+ */
55
+ export interface TransferAuthorizationParams {
56
+ /** Sender address (must match wallet) */
57
+ from: `0x${string}`;
58
+ /** Recipient address */
59
+ to: `0x${string}`;
60
+ /** Amount in atomic units (6 decimals for USDC) */
61
+ value: bigint;
62
+ /** Unix timestamp after which the authorization is valid */
63
+ validAfter: bigint;
64
+ /** Unix timestamp before which the authorization is valid */
65
+ validBefore: bigint;
66
+ /** Unique nonce (32 bytes) to prevent replay */
67
+ nonce: `0x${string}`;
68
+ }
69
+ /**
70
+ * Signed authorization ready to submit on-chain
71
+ */
72
+ export interface SignedTransferAuthorization extends TransferAuthorizationParams {
73
+ /** EIP-712 signature */
74
+ signature: `0x${string}`;
75
+ /** Signature v component */
76
+ v: number;
77
+ /** Signature r component */
78
+ r: `0x${string}`;
79
+ /** Signature s component */
80
+ s: `0x${string}`;
81
+ }
82
+ /**
83
+ * Generate a cryptographically random nonce (32 bytes)
84
+ */
85
+ export declare function generateNonce(): `0x${string}`;
86
+ /**
87
+ * Convert USD amount to USDC atomic units
88
+ */
89
+ export declare function usdToAtomicUsdc(usd: number): bigint;
90
+ /**
91
+ * Convert USDC atomic units to USD
92
+ */
93
+ export declare function atomicUsdcToUsd(atomic: bigint): number;
94
+ /**
95
+ * Sign a TransferWithAuthorization message
96
+ *
97
+ * Creates an EIP-712 signature that authorizes a transfer of USDC
98
+ * from the signer's wallet to a recipient. The signature can be
99
+ * submitted by anyone to execute the transfer.
100
+ *
101
+ * @param walletClient - viem wallet client with signing capability
102
+ * @param params - Transfer authorization parameters
103
+ * @returns Signed authorization with signature components
104
+ *
105
+ * @example
106
+ * ```ts
107
+ * const signed = await signTransferAuthorization(walletClient, {
108
+ * from: '0x...',
109
+ * to: '0x...',
110
+ * value: usdToAtomicUsdc(0.10),
111
+ * validAfter: 0n,
112
+ * validBefore: BigInt(Math.floor(Date.now() / 1000) + 3600),
113
+ * nonce: generateNonce(),
114
+ * });
115
+ * ```
116
+ */
117
+ export declare function signTransferAuthorization(walletClient: WalletClient, params: TransferAuthorizationParams): Promise<SignedTransferAuthorization>;
118
+ /**
119
+ * Create transfer authorization params with sensible defaults
120
+ *
121
+ * @param from - Sender address
122
+ * @param to - Recipient address
123
+ * @param amountUsd - Amount in USD
124
+ * @param validitySeconds - How long the authorization is valid (default 5 minutes)
125
+ * @returns TransferAuthorizationParams ready for signing
126
+ */
127
+ export declare function createTransferAuthorizationParams(from: `0x${string}`, to: `0x${string}`, amountUsd: number, validitySeconds?: number): TransferAuthorizationParams;
128
+ //# sourceMappingURL=eip3009.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eip3009.d.ts","sourceRoot":"","sources":["../../src/lib/eip3009.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AAEzC;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAG,4CAAqD,CAAC;AAEvF;;GAEG;AACH,eAAO,MAAM,aAAa,IAAI,CAAC;AAE/B;;GAEG;AACH,eAAO,MAAM,WAAW;;;;;CAKd,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;;;;;;;;CASpC,CAAC;AAEX;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C,yCAAyC;IACzC,IAAI,EAAE,KAAK,MAAM,EAAE,CAAC;IACpB,wBAAwB;IACxB,EAAE,EAAE,KAAK,MAAM,EAAE,CAAC;IAClB,mDAAmD;IACnD,KAAK,EAAE,MAAM,CAAC;IACd,4DAA4D;IAC5D,UAAU,EAAE,MAAM,CAAC;IACnB,6DAA6D;IAC7D,WAAW,EAAE,MAAM,CAAC;IACpB,gDAAgD;IAChD,KAAK,EAAE,KAAK,MAAM,EAAE,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,2BAA4B,SAAQ,2BAA2B;IAC9E,wBAAwB;IACxB,SAAS,EAAE,KAAK,MAAM,EAAE,CAAC;IACzB,4BAA4B;IAC5B,CAAC,EAAE,MAAM,CAAC;IACV,4BAA4B;IAC5B,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;IACjB,4BAA4B;IAC5B,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;CAClB;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,KAAK,MAAM,EAAE,CAI7C;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAsB,yBAAyB,CAC7C,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,2BAA2B,GAClC,OAAO,CAAC,2BAA2B,CAAC,CA8CtC;AAED;;;;;;;;GAQG;AACH,wBAAgB,iCAAiC,CAC/C,IAAI,EAAE,KAAK,MAAM,EAAE,EACnB,EAAE,EAAE,KAAK,MAAM,EAAE,EACjB,SAAS,EAAE,MAAM,EACjB,eAAe,GAAE,MAAY,GAC5B,2BAA2B,CAW7B"}
@@ -0,0 +1,151 @@
1
+ "use strict";
2
+ /**
3
+ * EIP-3009: Transfer With Authorization for USDC
4
+ *
5
+ * Implements typed data structures and signing for USDC's
6
+ * TransferWithAuthorization function, enabling gasless transfers
7
+ * where a third party can submit the transaction.
8
+ *
9
+ * @see https://eips.ethereum.org/EIPS/eip-3009
10
+ */
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.TRANSFER_WITH_AUTHORIZATION_TYPES = exports.USDC_DOMAIN = exports.USDC_DECIMALS = exports.USDC_ADDRESS_BASE = void 0;
13
+ exports.generateNonce = generateNonce;
14
+ exports.usdToAtomicUsdc = usdToAtomicUsdc;
15
+ exports.atomicUsdcToUsd = atomicUsdcToUsd;
16
+ exports.signTransferAuthorization = signTransferAuthorization;
17
+ exports.createTransferAuthorizationParams = createTransferAuthorizationParams;
18
+ /**
19
+ * USDC contract address on Base mainnet
20
+ */
21
+ exports.USDC_ADDRESS_BASE = '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913';
22
+ /**
23
+ * USDC decimals (standard across all networks)
24
+ */
25
+ exports.USDC_DECIMALS = 6;
26
+ /**
27
+ * EIP-712 Domain for USDC on Base
28
+ */
29
+ exports.USDC_DOMAIN = {
30
+ name: 'USD Coin',
31
+ version: '2',
32
+ chainId: 8453,
33
+ verifyingContract: exports.USDC_ADDRESS_BASE,
34
+ };
35
+ /**
36
+ * EIP-712 types for TransferWithAuthorization
37
+ */
38
+ exports.TRANSFER_WITH_AUTHORIZATION_TYPES = {
39
+ TransferWithAuthorization: [
40
+ { name: 'from', type: 'address' },
41
+ { name: 'to', type: 'address' },
42
+ { name: 'value', type: 'uint256' },
43
+ { name: 'validAfter', type: 'uint256' },
44
+ { name: 'validBefore', type: 'uint256' },
45
+ { name: 'nonce', type: 'bytes32' },
46
+ ],
47
+ };
48
+ /**
49
+ * Generate a cryptographically random nonce (32 bytes)
50
+ */
51
+ function generateNonce() {
52
+ const bytes = new Uint8Array(32);
53
+ crypto.getRandomValues(bytes);
54
+ return `0x${Array.from(bytes).map(b => b.toString(16).padStart(2, '0')).join('')}`;
55
+ }
56
+ /**
57
+ * Convert USD amount to USDC atomic units
58
+ */
59
+ function usdToAtomicUsdc(usd) {
60
+ return BigInt(Math.round(usd * 10 ** exports.USDC_DECIMALS));
61
+ }
62
+ /**
63
+ * Convert USDC atomic units to USD
64
+ */
65
+ function atomicUsdcToUsd(atomic) {
66
+ return Number(atomic) / 10 ** exports.USDC_DECIMALS;
67
+ }
68
+ /**
69
+ * Sign a TransferWithAuthorization message
70
+ *
71
+ * Creates an EIP-712 signature that authorizes a transfer of USDC
72
+ * from the signer's wallet to a recipient. The signature can be
73
+ * submitted by anyone to execute the transfer.
74
+ *
75
+ * @param walletClient - viem wallet client with signing capability
76
+ * @param params - Transfer authorization parameters
77
+ * @returns Signed authorization with signature components
78
+ *
79
+ * @example
80
+ * ```ts
81
+ * const signed = await signTransferAuthorization(walletClient, {
82
+ * from: '0x...',
83
+ * to: '0x...',
84
+ * value: usdToAtomicUsdc(0.10),
85
+ * validAfter: 0n,
86
+ * validBefore: BigInt(Math.floor(Date.now() / 1000) + 3600),
87
+ * nonce: generateNonce(),
88
+ * });
89
+ * ```
90
+ */
91
+ async function signTransferAuthorization(walletClient, params) {
92
+ const account = walletClient.account;
93
+ if (!account) {
94
+ throw new Error('Wallet client must have an account');
95
+ }
96
+ // Verify from address matches wallet
97
+ if (params.from.toLowerCase() !== account.address.toLowerCase()) {
98
+ throw new Error(`From address ${params.from} does not match wallet address ${account.address}`);
99
+ }
100
+ // Sign the typed data
101
+ const signature = await walletClient.signTypedData({
102
+ account,
103
+ domain: exports.USDC_DOMAIN,
104
+ types: exports.TRANSFER_WITH_AUTHORIZATION_TYPES,
105
+ primaryType: 'TransferWithAuthorization',
106
+ message: {
107
+ from: params.from,
108
+ to: params.to,
109
+ value: params.value,
110
+ validAfter: params.validAfter,
111
+ validBefore: params.validBefore,
112
+ nonce: params.nonce,
113
+ },
114
+ });
115
+ // Validate signature length (65 bytes = 130 hex chars + 0x prefix)
116
+ if (signature.length !== 132) {
117
+ throw new Error(`Unexpected signature length: ${signature.length}, expected 132`);
118
+ }
119
+ // Extract v, r, s components from signature
120
+ const r = `0x${signature.slice(2, 66)}`;
121
+ const s = `0x${signature.slice(66, 130)}`;
122
+ const v = parseInt(signature.slice(130, 132), 16);
123
+ return {
124
+ ...params,
125
+ signature,
126
+ v,
127
+ r,
128
+ s,
129
+ };
130
+ }
131
+ /**
132
+ * Create transfer authorization params with sensible defaults
133
+ *
134
+ * @param from - Sender address
135
+ * @param to - Recipient address
136
+ * @param amountUsd - Amount in USD
137
+ * @param validitySeconds - How long the authorization is valid (default 5 minutes)
138
+ * @returns TransferAuthorizationParams ready for signing
139
+ */
140
+ function createTransferAuthorizationParams(from, to, amountUsd, validitySeconds = 300) {
141
+ const now = Math.floor(Date.now() / 1000);
142
+ return {
143
+ from,
144
+ to,
145
+ value: usdToAtomicUsdc(amountUsd),
146
+ validAfter: 0n, // Valid immediately
147
+ validBefore: BigInt(now + validitySeconds),
148
+ nonce: generateNonce(),
149
+ };
150
+ }
151
+ //# sourceMappingURL=eip3009.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eip3009.js","sourceRoot":"","sources":["../../src/lib/eip3009.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,99 @@
1
+ /**
2
+ * Payment Integration for nullpath MCP Client
3
+ *
4
+ * Handles x402 payment flow:
5
+ * 1. Parse 402 Payment Required responses
6
+ * 2. Sign EIP-3009 TransferWithAuthorization
7
+ * 3. Encode payment header for retry
8
+ */
9
+ import { type SignedTransferAuthorization } from './eip3009.js';
10
+ import { type NullpathWallet } from './wallet.js';
11
+ /**
12
+ * Payment requirements from 402 response
13
+ */
14
+ export interface PaymentRequirements {
15
+ /** Recipient wallet address */
16
+ recipient: `0x${string}`;
17
+ /** Amount in atomic USDC units */
18
+ amount: bigint;
19
+ /** USDC contract address */
20
+ asset: `0x${string}`;
21
+ /** Chain ID (8453 for Base) */
22
+ network: number;
23
+ /** Unix timestamp - authorization valid after */
24
+ validAfter: bigint;
25
+ /** Unix timestamp - authorization valid before */
26
+ validBefore: bigint;
27
+ }
28
+ /**
29
+ * Payment header payload
30
+ */
31
+ export interface PaymentPayload {
32
+ signature: string;
33
+ from: string;
34
+ to: string;
35
+ value: string;
36
+ validAfter: string;
37
+ validBefore: string;
38
+ nonce: string;
39
+ }
40
+ /**
41
+ * Error thrown when payment is required but cannot be made
42
+ */
43
+ export declare class PaymentRequiredError extends Error {
44
+ readonly requirements?: PaymentRequirements | undefined;
45
+ constructor(message: string, requirements?: PaymentRequirements | undefined);
46
+ }
47
+ /**
48
+ * Error thrown when payment signing fails
49
+ */
50
+ export declare class PaymentSigningError extends Error {
51
+ readonly cause?: Error | undefined;
52
+ constructor(message: string, cause?: Error | undefined);
53
+ }
54
+ /**
55
+ * Parse 402 Payment Required response headers
56
+ *
57
+ * Extracts payment requirements from X-PAYMENT-REQUIRED header.
58
+ * The header contains base64-encoded JSON with payment details.
59
+ *
60
+ * @param response - Fetch Response object
61
+ * @returns PaymentRequirements or null if not a 402 response
62
+ */
63
+ export declare function parsePaymentRequired(response: Response): PaymentRequirements | null;
64
+ /**
65
+ * Sign a payment using EIP-3009 TransferWithAuthorization
66
+ *
67
+ * @param wallet - NullpathWallet instance
68
+ * @param requirements - Payment requirements from 402 response
69
+ * @returns Signed authorization
70
+ */
71
+ export declare function signPayment(wallet: NullpathWallet, requirements: PaymentRequirements): Promise<SignedTransferAuthorization>;
72
+ /**
73
+ * Encode signed authorization as X-PAYMENT header value
74
+ *
75
+ * @param signed - Signed transfer authorization
76
+ * @returns Base64-encoded JSON string for X-PAYMENT header
77
+ */
78
+ export declare function encodePaymentHeader(signed: SignedTransferAuthorization): string;
79
+ /**
80
+ * Execute a fetch request with automatic x402 payment handling
81
+ *
82
+ * If the server returns 402 Payment Required:
83
+ * 1. Parse payment requirements
84
+ * 2. Sign EIP-3009 authorization
85
+ * 3. Retry with X-PAYMENT header
86
+ *
87
+ * @param url - Request URL
88
+ * @param options - Fetch options
89
+ * @returns Fetch Response
90
+ * @throws WalletNotConfiguredError if 402 and no wallet
91
+ * @throws PaymentSigningError if signing fails
92
+ */
93
+ export declare function fetchWithPayment(url: string, options?: RequestInit): Promise<Response>;
94
+ /**
95
+ * Format amount in human-readable USDC (using bigint arithmetic to avoid precision loss)
96
+ */
97
+ export declare function formatUsdcAmount(atomic: bigint): string;
98
+ export { isWalletConfigured, WalletNotConfiguredError, InvalidPrivateKeyError } from './wallet.js';
99
+ //# sourceMappingURL=payment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"payment.d.ts","sourceRoot":"","sources":["../../src/lib/payment.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAKL,KAAK,2BAA2B,EACjC,MAAM,cAAc,CAAC;AACtB,OAAO,EAKL,KAAK,cAAc,EACpB,MAAM,aAAa,CAAC;AAKrB;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,+BAA+B;IAC/B,SAAS,EAAE,KAAK,MAAM,EAAE,CAAC;IACzB,kCAAkC;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,4BAA4B;IAC5B,KAAK,EAAE,KAAK,MAAM,EAAE,CAAC;IACrB,+BAA+B;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,iDAAiD;IACjD,UAAU,EAAE,MAAM,CAAC;IACnB,kDAAkD;IAClD,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,KAAK;aAG3B,YAAY,CAAC,EAAE,mBAAmB;gBADlD,OAAO,EAAE,MAAM,EACC,YAAY,CAAC,EAAE,mBAAmB,YAAA;CAKrD;AAED;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,KAAK;aACC,KAAK,CAAC,EAAE,KAAK;gBAA9C,OAAO,EAAE,MAAM,EAAkB,KAAK,CAAC,EAAE,KAAK,YAAA;CAI3D;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,GAAG,mBAAmB,GAAG,IAAI,CAkBnF;AA8CD;;;;;;GAMG;AACH,wBAAsB,WAAW,CAC/B,MAAM,EAAE,cAAc,EACtB,YAAY,EAAE,mBAAmB,GAChC,OAAO,CAAC,2BAA2B,CAAC,CA8BtC;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,2BAA2B,GAAG,MAAM,CAY/E;AAgBD;;;;;;;;;;;;;GAaG;AACH,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,WAAgB,GACxB,OAAO,CAAC,QAAQ,CAAC,CAyEnB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAKvD;AAGD,OAAO,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC"}