@armory-sh/base 0.2.22-alpha.3.21 → 0.2.22-alpha.3.22

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.
@@ -48,10 +48,19 @@ export declare function detectPaymentVersion(headers: Headers): number | null;
48
48
  * Extract payment from V2 headers
49
49
  */
50
50
  export declare function extractPaymentFromHeaders(headers: Headers): PaymentPayload | null;
51
+ export interface PaymentRequiredOptions {
52
+ error?: string;
53
+ resource?: {
54
+ url: string;
55
+ description?: string;
56
+ mimeType?: string;
57
+ };
58
+ extensions?: Record<string, unknown>;
59
+ }
51
60
  /**
52
61
  * Create payment required headers (V2 format)
53
62
  */
54
- export declare function createPaymentRequiredHeaders(requirements: PaymentRequirements | PaymentRequirements[]): Record<string, string>;
63
+ export declare function createPaymentRequiredHeaders(requirements: PaymentRequirements | PaymentRequirements[], options?: PaymentRequiredOptions): Record<string, string>;
55
64
  /**
56
65
  * Create settlement response headers (V2 format)
57
66
  */
package/dist/index.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  export type { Address as X402Address, Hex, X402Version, Scheme, Network as X402Network, ExactEvmAuthorization, ExactEvmPayload, PaymentPayload as X402PaymentPayload, UnsignedPaymentPayload as X402UnsignedPaymentPayload, PaymentRequirements as X402PaymentRequirements, SettlementResponse as X402SettlementResponse, VerifyResponse, X402Response, } from "./types/x402";
2
2
  export { X402_VERSION, SCHEMES, isPaymentPayload, isExactEvmPayload, } from "./types/x402";
3
3
  export { safeBase64Encode, safeBase64Decode, encodePayment, decodePayment, encodeSettlementResponse, decodeSettlementResponse, encodeX402Response, decodeX402Response, detectPaymentVersion, extractPaymentFromHeaders, createPaymentRequiredHeaders, createSettlementHeaders, } from "./encoding/x402";
4
+ export type { PaymentRequiredOptions } from "./encoding/x402";
4
5
  export { createNonce, toAtomicUnits, fromAtomicUnits, caip2ToNetwork, networkToCaip2, getCurrentTimestamp, isValidAddress, normalizeAddress, } from "./utils/x402";
5
6
  export type { CAIP2Network as CAIP2ChainId, CAIPAssetId, Address, Signature, PayToV2, Extensions, PaymentPayloadV2, PaymentRequirementsV2, SettlementResponseV2, PaymentRequiredV2, ResourceInfo, EIP3009Authorization, SchemePayloadV2, } from "./types/v2";
6
7
  export { V2_HEADERS, isCAIP2ChainId, isCAIPAssetId, isAddress, isPaymentRequiredV2, isPaymentPayloadV2, assetIdToAddress, addressToAssetId, parseSignature as parseSignatureV2, combineSignature as combineSignatureV2, } from "./types/v2";
package/dist/index.js CHANGED
@@ -136,11 +136,14 @@ function extractPaymentFromHeaders(headers) {
136
136
  return null;
137
137
  }
138
138
  }
139
- function createPaymentRequiredHeaders(requirements) {
139
+ function createPaymentRequiredHeaders(requirements, options) {
140
140
  const accepts = Array.isArray(requirements) ? requirements : [requirements];
141
141
  const response = {
142
142
  x402Version: 2,
143
- accepts
143
+ error: options?.error ?? "Payment required",
144
+ resource: options?.resource ?? { url: "", mimeType: "application/json" },
145
+ accepts,
146
+ extensions: options?.extensions ?? {}
144
147
  };
145
148
  return {
146
149
  [V2_HEADERS.PAYMENT_REQUIRED]: safeBase64Encode(JSON.stringify(response))
@@ -43,7 +43,7 @@ export interface PaymentRequirementsV2 {
43
43
  /** Blockchain network identifier in CAIP-2 format */
44
44
  network: CAIP2Network;
45
45
  /** Required payment amount in atomic token units */
46
- maxAmountRequired: string;
46
+ amount: string;
47
47
  /** Token contract address (extracted from CAIP asset ID) */
48
48
  asset: Address;
49
49
  /** Recipient wallet address or role constant */
@@ -67,7 +67,7 @@ export interface UnsignedPaymentPayload {
67
67
  export interface PaymentRequirements {
68
68
  scheme: Scheme;
69
69
  network: Network;
70
- maxAmountRequired: string;
70
+ amount: string;
71
71
  payTo: Address;
72
72
  maxTimeoutSeconds: number;
73
73
  asset: Address;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@armory-sh/base",
3
- "version": "0.2.22-alpha.3.21",
3
+ "version": "0.2.22-alpha.3.22",
4
4
  "license": "MIT",
5
5
  "author": "Sawyer Cutler <sawyer@dirtroad.dev>",
6
6
  "type": "module",