agentwallet-sdk 6.0.5 → 6.1.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.
@@ -1,149 +0,0 @@
1
- /**
2
- * Stellar x402 Payment Adapter
3
- *
4
- * Implements x402 payment protocol on Stellar network.
5
- * Stellar x402 support went live March 11, 2026.
6
- *
7
- * Chain identifiers:
8
- * - Stellar Mainnet: "stellar:pubnet"
9
- * - Stellar Testnet: "stellar:testnet"
10
- *
11
- * Key differences from EVM chains:
12
- * - Uses Ed25519 keypairs (not secp256k1)
13
- * - Transaction format: Stellar XDR (not EVM tx)
14
- * - Settlement: ~5 seconds (1 ledger close)
15
- * - Fees: ~0.00001 XLM per operation (effectively free at scale)
16
- * - USDC: Circle-issued USDC on Stellar
17
- */
18
- export declare const STELLAR_NETWORK: {
19
- readonly pubnet: {
20
- readonly horizonUrl: "https://horizon.stellar.org";
21
- readonly networkPassphrase: "Public Global Stellar Network ; September 2015";
22
- readonly chainId: "stellar:pubnet";
23
- };
24
- readonly testnet: {
25
- readonly horizonUrl: "https://horizon-testnet.stellar.org";
26
- readonly networkPassphrase: "Test SDF Network ; September 2015";
27
- readonly chainId: "stellar:testnet";
28
- };
29
- };
30
- /**
31
- * Circle USDC on Stellar (Mainnet)
32
- * Asset code: USDC
33
- * Issuer: GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVN
34
- */
35
- export declare const STELLAR_USDC: {
36
- readonly pubnet: {
37
- readonly code: "USDC";
38
- readonly issuer: "GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVN";
39
- };
40
- readonly testnet: {
41
- readonly code: "USDC";
42
- readonly issuer: "GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5";
43
- };
44
- };
45
- export type StellarNetwork = 'pubnet' | 'testnet';
46
- export interface StellarPaymentConfig {
47
- /** Which Stellar network to use */
48
- network?: StellarNetwork;
49
- /** x402 resource identifier (for memo) */
50
- resource?: string;
51
- /** Custom Horizon URL (overrides default) */
52
- horizonUrl?: string;
53
- }
54
- export interface StellarPaymentRequest {
55
- /** Destination Stellar account (G... address) */
56
- destination: string;
57
- /** Amount in USDC (decimal string, e.g. "0.50") */
58
- amount: string;
59
- /** Source Stellar account public key */
60
- sourcePublicKey: string;
61
- /** x402 resource path for memo */
62
- resource?: string;
63
- /** Network to use */
64
- network?: StellarNetwork;
65
- }
66
- export interface StellarPaymentResult {
67
- /** Stellar transaction hash */
68
- hash: string;
69
- /** Ledger number the transaction landed in */
70
- ledger: number;
71
- /** Successful */
72
- successful: boolean;
73
- /** Network used */
74
- network: StellarNetwork;
75
- }
76
- /**
77
- * StellarX402Adapter
78
- *
79
- * Handles x402 payment flow for Stellar network.
80
- *
81
- * Usage (with stellar-sdk):
82
- * ```typescript
83
- * import { StellarX402Adapter } from 'agentwallet-sdk/x402/stellar';
84
- * import { Keypair, Networks } from '@stellar/stellar-sdk';
85
- *
86
- * const adapter = new StellarX402Adapter({ network: 'pubnet' });
87
- * const result = await adapter.pay({
88
- * destination: 'GDESTWVX3VMLQCXPHPVLS3FMNMG2X7L5IGGQT7BQMIZXZZ4V7KBQVS',
89
- * amount: '0.50',
90
- * sourcePublicKey: keypair.publicKey(),
91
- * resource: '/api/data-endpoint',
92
- * }, keypair.secret());
93
- * ```
94
- *
95
- * Note: stellar-sdk must be installed separately:
96
- * npm install @stellar/stellar-sdk
97
- */
98
- export declare class StellarX402Adapter {
99
- private network;
100
- private horizonUrl;
101
- constructor(config?: StellarPaymentConfig);
102
- /**
103
- * Parse an x402 402 response and extract Stellar payment details.
104
- * The 402 response should include X-Payment-Chains: stellar:pubnet
105
- * and X-Payment-Amount, X-Payment-Destination headers.
106
- */
107
- parseX402Response(headers: Record<string, string>): {
108
- supported: boolean;
109
- destination?: string;
110
- amount?: string;
111
- resource?: string;
112
- };
113
- /**
114
- * Build a Stellar USDC payment transaction.
115
- *
116
- * Requires @stellar/stellar-sdk to be installed:
117
- * npm install @stellar/stellar-sdk
118
- *
119
- * Returns the XDR-encoded transaction envelope for signing and submission.
120
- */
121
- buildPaymentTransaction(request: StellarPaymentRequest): Promise<string>;
122
- /**
123
- * Submit a signed Stellar transaction to Horizon.
124
- */
125
- submitTransaction(signedXdr: string): Promise<StellarPaymentResult>;
126
- private _loadAccount;
127
- /** Chain ID for this adapter (e.g. "stellar:pubnet") */
128
- get chainId(): string;
129
- }
130
- /**
131
- * Full x402 payment flow for Stellar.
132
- * 1. Detects 402 response from API
133
- * 2. Parses Stellar payment details from headers
134
- * 3. Builds, signs, and submits Stellar USDC payment
135
- * 4. Retries the original request with payment proof
136
- *
137
- * Requires stellar-sdk: npm install @stellar/stellar-sdk
138
- */
139
- export declare function stellarX402Pay(params: {
140
- /** The 402 response headers */
141
- responseHeaders: Record<string, string>;
142
- /** Source account public key */
143
- sourcePublicKey: string;
144
- /** Signer function that takes XDR and returns signed XDR */
145
- sign: (xdr: string) => Promise<string>;
146
- /** Network to use */
147
- network?: StellarNetwork;
148
- }): Promise<StellarPaymentResult>;
149
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/x402/chains/stellar/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAIH,eAAO,MAAM,eAAe;;;;;;;;;;;CAWlB,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,YAAY;;;;;;;;;CASf,CAAC;AAIX,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,SAAS,CAAC;AAElD,MAAM,WAAW,oBAAoB;IACnC,mCAAmC;IACnC,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,6CAA6C;IAC7C,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,qBAAqB;IACpC,iDAAiD;IACjD,WAAW,EAAE,MAAM,CAAC;IACpB,mDAAmD;IACnD,MAAM,EAAE,MAAM,CAAC;IACf,wCAAwC;IACxC,eAAe,EAAE,MAAM,CAAC;IACxB,kCAAkC;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qBAAqB;IACrB,OAAO,CAAC,EAAE,cAAc,CAAC;CAC1B;AAED,MAAM,WAAW,oBAAoB;IACnC,+BAA+B;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,8CAA8C;IAC9C,MAAM,EAAE,MAAM,CAAC;IACf,iBAAiB;IACjB,UAAU,EAAE,OAAO,CAAC;IACpB,mBAAmB;IACnB,OAAO,EAAE,cAAc,CAAC;CACzB;AAID;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,UAAU,CAAS;gBAEf,MAAM,GAAE,oBAAyB;IAK7C;;;;OAIG;IACH,iBAAiB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG;QAClD,SAAS,EAAE,OAAO,CAAC;QACnB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB;IAgBD;;;;;;;OAOG;IACG,uBAAuB,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC;IA+C9E;;OAEG;IACG,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;YA6B3D,YAAY;IAe1B,wDAAwD;IACxD,IAAI,OAAO,IAAI,MAAM,CAEpB;CACF;AAID;;;;;;;;GAQG;AACH,wBAAsB,cAAc,CAAC,MAAM,EAAE;IAC3C,+BAA+B;IAC/B,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,gCAAgC;IAChC,eAAe,EAAE,MAAM,CAAC;IACxB,4DAA4D;IAC5D,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACvC,qBAAqB;IACrB,OAAO,CAAC,EAAE,cAAc,CAAC;CAC1B,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAqBhC"}
@@ -1,199 +0,0 @@
1
- /**
2
- * Stellar x402 Payment Adapter
3
- *
4
- * Implements x402 payment protocol on Stellar network.
5
- * Stellar x402 support went live March 11, 2026.
6
- *
7
- * Chain identifiers:
8
- * - Stellar Mainnet: "stellar:pubnet"
9
- * - Stellar Testnet: "stellar:testnet"
10
- *
11
- * Key differences from EVM chains:
12
- * - Uses Ed25519 keypairs (not secp256k1)
13
- * - Transaction format: Stellar XDR (not EVM tx)
14
- * - Settlement: ~5 seconds (1 ledger close)
15
- * - Fees: ~0.00001 XLM per operation (effectively free at scale)
16
- * - USDC: Circle-issued USDC on Stellar
17
- */
18
- // ─── Stellar Chain Constants ─────────────────────────────────────────────────
19
- export const STELLAR_NETWORK = {
20
- pubnet: {
21
- horizonUrl: 'https://horizon.stellar.org',
22
- networkPassphrase: 'Public Global Stellar Network ; September 2015',
23
- chainId: 'stellar:pubnet',
24
- },
25
- testnet: {
26
- horizonUrl: 'https://horizon-testnet.stellar.org',
27
- networkPassphrase: 'Test SDF Network ; September 2015',
28
- chainId: 'stellar:testnet',
29
- },
30
- };
31
- /**
32
- * Circle USDC on Stellar (Mainnet)
33
- * Asset code: USDC
34
- * Issuer: GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVN
35
- */
36
- export const STELLAR_USDC = {
37
- pubnet: {
38
- code: 'USDC',
39
- issuer: 'GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVN',
40
- },
41
- testnet: {
42
- code: 'USDC',
43
- issuer: 'GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5',
44
- },
45
- };
46
- // ─── Stellar x402 Payment Adapter ────────────────────────────────────────────
47
- /**
48
- * StellarX402Adapter
49
- *
50
- * Handles x402 payment flow for Stellar network.
51
- *
52
- * Usage (with stellar-sdk):
53
- * ```typescript
54
- * import { StellarX402Adapter } from 'agentwallet-sdk/x402/stellar';
55
- * import { Keypair, Networks } from '@stellar/stellar-sdk';
56
- *
57
- * const adapter = new StellarX402Adapter({ network: 'pubnet' });
58
- * const result = await adapter.pay({
59
- * destination: 'GDESTWVX3VMLQCXPHPVLS3FMNMG2X7L5IGGQT7BQMIZXZZ4V7KBQVS',
60
- * amount: '0.50',
61
- * sourcePublicKey: keypair.publicKey(),
62
- * resource: '/api/data-endpoint',
63
- * }, keypair.secret());
64
- * ```
65
- *
66
- * Note: stellar-sdk must be installed separately:
67
- * npm install @stellar/stellar-sdk
68
- */
69
- export class StellarX402Adapter {
70
- constructor(config = {}) {
71
- this.network = config.network ?? 'pubnet';
72
- this.horizonUrl = config.horizonUrl ?? STELLAR_NETWORK[this.network].horizonUrl;
73
- }
74
- /**
75
- * Parse an x402 402 response and extract Stellar payment details.
76
- * The 402 response should include X-Payment-Chains: stellar:pubnet
77
- * and X-Payment-Amount, X-Payment-Destination headers.
78
- */
79
- parseX402Response(headers) {
80
- const chains = headers['x-payment-chains'] ?? headers['X-Payment-Chains'] ?? '';
81
- const chainId = STELLAR_NETWORK[this.network].chainId;
82
- if (!chains.includes(chainId) && !chains.includes('stellar')) {
83
- return { supported: false };
84
- }
85
- return {
86
- supported: true,
87
- destination: headers['x-payment-destination'] ?? headers['X-Payment-Destination'],
88
- amount: headers['x-payment-amount'] ?? headers['X-Payment-Amount'],
89
- resource: headers['x-payment-resource'] ?? headers['X-Payment-Resource'],
90
- };
91
- }
92
- /**
93
- * Build a Stellar USDC payment transaction.
94
- *
95
- * Requires @stellar/stellar-sdk to be installed:
96
- * npm install @stellar/stellar-sdk
97
- *
98
- * Returns the XDR-encoded transaction envelope for signing and submission.
99
- */
100
- async buildPaymentTransaction(request) {
101
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
102
- let StellarSdk;
103
- try {
104
- // @ts-expect-error — @stellar/stellar-sdk is an optional peer dependency
105
- StellarSdk = await import('@stellar/stellar-sdk');
106
- }
107
- catch {
108
- throw new Error('Stellar support requires @stellar/stellar-sdk: npm install @stellar/stellar-sdk');
109
- }
110
- const networkConfig = STELLAR_NETWORK[request.network ?? this.network];
111
- const usdcAsset = STELLAR_USDC[request.network ?? this.network];
112
- // Load source account sequence number from Horizon
113
- const account = await this._loadAccount(request.sourcePublicKey, networkConfig.horizonUrl);
114
- const stellarAccount = new StellarSdk.Account(request.sourcePublicKey, account.sequence);
115
- const asset = new StellarSdk.Asset(usdcAsset.code, usdcAsset.issuer);
116
- const memoText = request.resource
117
- ? request.resource.slice(0, 28) // Stellar memo max 28 bytes
118
- : 'x402-payment';
119
- const transaction = new StellarSdk.TransactionBuilder(stellarAccount, {
120
- fee: StellarSdk.BASE_FEE,
121
- networkPassphrase: networkConfig.networkPassphrase,
122
- })
123
- .addOperation(StellarSdk.Operation.payment({
124
- destination: request.destination,
125
- asset,
126
- amount: request.amount,
127
- }))
128
- .addMemo(StellarSdk.Memo.text(memoText))
129
- .setTimeout(300) // 5 minute window
130
- .build();
131
- return transaction.toXDR();
132
- }
133
- /**
134
- * Submit a signed Stellar transaction to Horizon.
135
- */
136
- async submitTransaction(signedXdr) {
137
- const networkConfig = STELLAR_NETWORK[this.network];
138
- const body = new URLSearchParams({ tx: signedXdr }).toString();
139
- const resp = await fetch(`${networkConfig.horizonUrl}/transactions`, {
140
- method: 'POST',
141
- headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
142
- body,
143
- });
144
- if (!resp.ok) {
145
- const err = await resp.text();
146
- throw new Error(`Stellar transaction failed: ${resp.status} ${err.slice(0, 200)}`);
147
- }
148
- const result = await resp.json();
149
- return {
150
- hash: result.hash,
151
- ledger: result.ledger,
152
- successful: result.successful ?? true,
153
- network: this.network,
154
- };
155
- }
156
- async _loadAccount(publicKey, horizonUrl) {
157
- const resp = await fetch(`${horizonUrl}/accounts/${publicKey}`);
158
- if (!resp.ok) {
159
- throw new Error(`Cannot load Stellar account ${publicKey}: ${resp.status}. ` +
160
- `Ensure the account exists and has a USDC trustline established.`);
161
- }
162
- const data = await resp.json();
163
- return { sequence: data.sequence };
164
- }
165
- /** Chain ID for this adapter (e.g. "stellar:pubnet") */
166
- get chainId() {
167
- return STELLAR_NETWORK[this.network].chainId;
168
- }
169
- }
170
- // ─── x402 Auto-Pay Helper ────────────────────────────────────────────────────
171
- /**
172
- * Full x402 payment flow for Stellar.
173
- * 1. Detects 402 response from API
174
- * 2. Parses Stellar payment details from headers
175
- * 3. Builds, signs, and submits Stellar USDC payment
176
- * 4. Retries the original request with payment proof
177
- *
178
- * Requires stellar-sdk: npm install @stellar/stellar-sdk
179
- */
180
- export async function stellarX402Pay(params) {
181
- const adapter = new StellarX402Adapter({ network: params.network ?? 'pubnet' });
182
- const details = adapter.parseX402Response(params.responseHeaders);
183
- if (!details.supported) {
184
- throw new Error('This endpoint does not support Stellar x402 payments');
185
- }
186
- if (!details.destination || !details.amount) {
187
- throw new Error('x402 response missing destination or amount headers');
188
- }
189
- const xdr = await adapter.buildPaymentTransaction({
190
- destination: details.destination,
191
- amount: details.amount,
192
- sourcePublicKey: params.sourcePublicKey,
193
- resource: details.resource,
194
- network: params.network ?? 'pubnet',
195
- });
196
- const signedXdr = await params.sign(xdr);
197
- return adapter.submitTransaction(signedXdr);
198
- }
199
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/x402/chains/stellar/index.ts"],"names":[],"mappings":"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"}