@armory-sh/client-ethers 0.2.12 → 0.2.13

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.d.ts CHANGED
@@ -14,9 +14,6 @@ export { Provider, Signer } from 'ethers';
14
14
  * Detect x402 protocol version from response headers
15
15
  */
16
16
  declare function detectX402Version(response: Response): 1 | 2;
17
- /**
18
- * Parsed payment requirements with version info
19
- */
20
17
  interface ParsedPaymentRequirements {
21
18
  version: 1 | 2;
22
19
  requirements: X402PaymentRequirementsV1 | PaymentRequirementsV2;
@@ -168,4 +165,56 @@ declare function recoverEIP3009Signer(params: TransferWithAuthorizationParams, s
168
165
  s: string;
169
166
  }, domain: EIP712Domain): Promise<`0x${string}`>;
170
167
 
171
- export { AuthorizationError, type ClientConfig, type ParsedPaymentRequirements, PaymentError, ProviderRequiredError, SignerRequiredError, SigningError, type X402ClientConfig, X402ClientError, type X402RequestInit, type X402Transport, type X402TransportConfig, createPaymentPayload, createX402Payment, createX402Transport, createX402V1Payment, createX402V2Payment, detectProtocolVersion, detectX402Version, encodeX402Payment, getPaymentHeaderName, parsePaymentRequired, parsePaymentRequirements, recoverEIP3009Signer, signEIP3009, signEIP3009WithDomain, signPayment };
168
+ /**
169
+ * X402 Client Factory for Ethers
170
+ *
171
+ * Creates a configured client instance for making X-402 payments
172
+ */
173
+
174
+ /**
175
+ * X402 Client instance
176
+ * Provides a high-level API for making X-402 authenticated requests
177
+ */
178
+ interface X402Client {
179
+ /**
180
+ * Make a GET request
181
+ */
182
+ get(url: string, init?: X402RequestInit): Promise<Response>;
183
+ /**
184
+ * Make a POST request
185
+ */
186
+ post(url: string, body?: unknown, init?: X402RequestInit): Promise<Response>;
187
+ /**
188
+ * Make a PUT request
189
+ */
190
+ put(url: string, body?: unknown, init?: X402RequestInit): Promise<Response>;
191
+ /**
192
+ * Make a DELETE request
193
+ */
194
+ del(url: string, init?: X402RequestInit): Promise<Response>;
195
+ /**
196
+ * Make a PATCH request
197
+ */
198
+ patch(url: string, body?: unknown, init?: X402RequestInit): Promise<Response>;
199
+ /**
200
+ * Set the signer for payment signing
201
+ */
202
+ setSigner(signer: Signer): void;
203
+ /**
204
+ * Get the current signer
205
+ */
206
+ getSigner(): Signer | undefined;
207
+ }
208
+
209
+ /**
210
+ * Create an X402 client
211
+ *
212
+ * @param config - Client configuration
213
+ * @returns Configured X402 client
214
+ */
215
+ declare function createX402Client(config: X402ClientConfig & SignerClientConfig & {
216
+ signer: Signer;
217
+ }): X402Client;
218
+ declare function createX402Client(config: X402ClientConfig & ProviderClientConfig): X402Client;
219
+
220
+ export { AuthorizationError, type ClientConfig, type ParsedPaymentRequirements, PaymentError, ProviderRequiredError, SignerRequiredError, SigningError, type X402Client, type X402ClientConfig, X402ClientError, type X402RequestInit, type X402Transport, type X402TransportConfig, createPaymentPayload, createX402Client, createX402Payment, createX402Transport, createX402V1Payment, createX402V2Payment, detectProtocolVersion, detectX402Version, encodeX402Payment, getPaymentHeaderName, parsePaymentRequired, parsePaymentRequirements, recoverEIP3009Signer, signEIP3009, signEIP3009WithDomain, signPayment };
package/dist/index.js CHANGED
@@ -332,7 +332,8 @@ async function createX402V2Payment(signer, requirements, fromAddress, nonce, val
332
332
  };
333
333
  return {
334
334
  x402Version: 2,
335
- accepted: requirements,
335
+ scheme: requirements.scheme,
336
+ network: requirements.network,
336
337
  payload
337
338
  };
338
339
  }
@@ -502,6 +503,38 @@ var createX402Transport = (config) => {
502
503
  getSigner: () => state.signer
503
504
  };
504
505
  };
506
+
507
+ // src/client.ts
508
+ function createX402Client(config) {
509
+ const transport = createX402Transport(void 0);
510
+ if ("signer" in config && config.signer) {
511
+ transport.setSigner(config.signer);
512
+ } else if ("provider" in config && config.provider) {
513
+ const provider = config.provider;
514
+ if (provider.getSigner) {
515
+ try {
516
+ const signer = provider.getSigner();
517
+ if (signer) {
518
+ transport.setSigner(signer);
519
+ }
520
+ } catch {
521
+ }
522
+ }
523
+ } else {
524
+ throw new SignerRequiredError(
525
+ "Either 'signer' or 'provider' with getSigner() must be provided"
526
+ );
527
+ }
528
+ return {
529
+ get: (url, init) => transport.get(url, init),
530
+ post: (url, body, init) => transport.post(url, body, init),
531
+ put: (url, body, init) => transport.put(url, body, init),
532
+ del: (url, init) => transport.del(url, init),
533
+ patch: (url, body, init) => transport.patch(url, body, init),
534
+ setSigner: (signer) => transport.setSigner(signer),
535
+ getSigner: () => transport.getSigner()
536
+ };
537
+ }
505
538
  export {
506
539
  AuthorizationError,
507
540
  EIP712_TYPES2 as EIP712_TYPES,
@@ -517,6 +550,7 @@ export {
517
550
  createEIP712Domain3 as createEIP712Domain,
518
551
  createPaymentPayload,
519
552
  createTransferWithAuthorization2 as createTransferWithAuthorization,
553
+ createX402Client,
520
554
  createX402Payment,
521
555
  createX402Transport,
522
556
  createX402V1Payment,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@armory-sh/client-ethers",
3
- "version": "0.2.12",
3
+ "version": "0.2.13",
4
4
  "license": "MIT",
5
5
  "author": "Sawyer Cutler <sawyer@dirtroad.dev>",
6
6
  "type": "module",
@@ -27,7 +27,7 @@
27
27
  "directory": "packages/client-ethers"
28
28
  },
29
29
  "dependencies": {
30
- "@armory-sh/base": "^0.2.12",
30
+ "@armory-sh/base": "^0.2.13",
31
31
  "ethers": "6.16.0"
32
32
  },
33
33
  "devDependencies": {
@@ -35,7 +35,7 @@
35
35
  "bun-types": "latest"
36
36
  },
37
37
  "scripts": {
38
- "build": "tsup",
38
+ "build": "rm -rf dist && tsup",
39
39
  "test": "bun test",
40
40
  "example": "bun run examples/"
41
41
  }