uvd-x402-sdk 2.5.0 → 2.10.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/README.md +380 -3
- package/dist/adapters/index.d.mts +1 -1
- package/dist/adapters/index.d.ts +1 -1
- package/dist/adapters/index.js +82 -1
- package/dist/adapters/index.js.map +1 -1
- package/dist/adapters/index.mjs +82 -1
- package/dist/adapters/index.mjs.map +1 -1
- package/dist/backend/index.d.mts +1036 -0
- package/dist/backend/index.d.ts +1036 -0
- package/dist/backend/index.js +1722 -0
- package/dist/backend/index.js.map +1 -0
- package/dist/backend/index.mjs +1704 -0
- package/dist/backend/index.mjs.map +1 -0
- package/dist/{index-BrFeSWKm.d.mts → index-C60c_e5z.d.mts} +13 -4
- package/dist/{index-DR2vXt-c.d.mts → index-D-dO_FoP.d.mts} +70 -4
- package/dist/{index-DR2vXt-c.d.ts → index-D-dO_FoP.d.ts} +70 -4
- package/dist/{index-BYX9BU79.d.ts → index-VIOUicmO.d.ts} +13 -4
- package/dist/index.d.mts +3 -3
- package/dist/index.d.ts +3 -3
- package/dist/index.js +115 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +110 -2
- package/dist/index.mjs.map +1 -1
- package/dist/providers/algorand/index.d.mts +86 -0
- package/dist/providers/algorand/index.d.ts +86 -0
- package/dist/providers/algorand/index.js +903 -0
- package/dist/providers/algorand/index.js.map +1 -0
- package/dist/providers/algorand/index.mjs +898 -0
- package/dist/providers/algorand/index.mjs.map +1 -0
- package/dist/providers/evm/index.d.mts +1 -1
- package/dist/providers/evm/index.d.ts +1 -1
- package/dist/providers/evm/index.js +78 -1
- package/dist/providers/evm/index.js.map +1 -1
- package/dist/providers/evm/index.mjs +78 -1
- package/dist/providers/evm/index.mjs.map +1 -1
- package/dist/providers/near/index.d.mts +1 -1
- package/dist/providers/near/index.d.ts +1 -1
- package/dist/providers/near/index.js +78 -1
- package/dist/providers/near/index.js.map +1 -1
- package/dist/providers/near/index.mjs +78 -1
- package/dist/providers/near/index.mjs.map +1 -1
- package/dist/providers/solana/index.d.mts +1 -1
- package/dist/providers/solana/index.d.ts +1 -1
- package/dist/providers/solana/index.js +78 -1
- package/dist/providers/solana/index.js.map +1 -1
- package/dist/providers/solana/index.mjs +78 -1
- package/dist/providers/solana/index.mjs.map +1 -1
- package/dist/providers/stellar/index.d.mts +1 -1
- package/dist/providers/stellar/index.d.ts +1 -1
- package/dist/providers/stellar/index.js +78 -1
- package/dist/providers/stellar/index.js.map +1 -1
- package/dist/providers/stellar/index.mjs +78 -1
- package/dist/providers/stellar/index.mjs.map +1 -1
- package/dist/react/index.d.mts +3 -3
- package/dist/react/index.d.ts +3 -3
- package/dist/react/index.js +82 -1
- package/dist/react/index.js.map +1 -1
- package/dist/react/index.mjs +82 -1
- package/dist/react/index.mjs.map +1 -1
- package/dist/utils/index.d.mts +57 -5
- package/dist/utils/index.d.ts +57 -5
- package/dist/utils/index.js +96 -1
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/index.mjs +93 -2
- package/dist/utils/index.mjs.map +1 -1
- package/package.json +24 -3
- package/src/adapters/wagmi.ts +4 -0
- package/src/backend/index.ts +2131 -0
- package/src/chains/index.ts +94 -2
- package/src/client/X402Client.ts +4 -0
- package/src/index.ts +26 -1
- package/src/providers/algorand/index.ts +356 -0
- package/src/types/index.ts +78 -3
- package/src/utils/index.ts +4 -0
- package/src/utils/validation.ts +76 -3
package/dist/utils/index.d.mts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { l as X402Version, m as X402Header, q as X402PayloadData, n as X402HeaderV1, p as X402PaymentOption, o as X402HeaderV2, C as ChainConfig, g as PaymentHeaders, X as X402HeaderName } from '../index-D-dO_FoP.mjs';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* uvd-x402-sdk - x402 Protocol Utilities
|
|
@@ -101,11 +101,12 @@ declare function isCAIP2Format(network: string): boolean;
|
|
|
101
101
|
declare function convertX402Header(header: X402Header, targetVersion: X402Version): X402Header;
|
|
102
102
|
|
|
103
103
|
/**
|
|
104
|
-
* uvd-x402-sdk - Validation Utilities
|
|
104
|
+
* uvd-x402-sdk - Validation and Payment Header Utilities
|
|
105
105
|
*
|
|
106
|
-
* Functions for validating payment parameters
|
|
107
|
-
*
|
|
106
|
+
* Functions for validating payment parameters and creating
|
|
107
|
+
* payment headers for HTTP requests.
|
|
108
108
|
*/
|
|
109
|
+
|
|
109
110
|
/**
|
|
110
111
|
* Validate that a recipient address is present and valid
|
|
111
112
|
*
|
|
@@ -128,5 +129,56 @@ declare function validateRecipient(recipient: string | undefined | null, network
|
|
|
128
129
|
* @throws X402Error with code 'INVALID_AMOUNT' if validation fails
|
|
129
130
|
*/
|
|
130
131
|
declare function validateAmount(amount: string | undefined | null): asserts amount is string;
|
|
132
|
+
/**
|
|
133
|
+
* Create payment headers object from a base64-encoded payload
|
|
134
|
+
*
|
|
135
|
+
* Returns an object with both X-PAYMENT and PAYMENT-SIGNATURE headers,
|
|
136
|
+
* making it easy to use either header format.
|
|
137
|
+
*
|
|
138
|
+
* @param paymentHeader - Base64-encoded payment payload
|
|
139
|
+
* @returns PaymentHeaders object with both header formats
|
|
140
|
+
*
|
|
141
|
+
* @example
|
|
142
|
+
* ```ts
|
|
143
|
+
* const headers = createPaymentHeaders(paymentHeader);
|
|
144
|
+
*
|
|
145
|
+
* // Use v1 header (most compatible)
|
|
146
|
+
* fetch(url, { headers: { 'X-PAYMENT': headers['X-PAYMENT'] } });
|
|
147
|
+
*
|
|
148
|
+
* // Use v2 header
|
|
149
|
+
* fetch(url, { headers: { 'PAYMENT-SIGNATURE': headers['PAYMENT-SIGNATURE'] } });
|
|
150
|
+
* ```
|
|
151
|
+
*/
|
|
152
|
+
declare function createPaymentHeaders(paymentHeader: string): PaymentHeaders;
|
|
153
|
+
/**
|
|
154
|
+
* Get a single payment header by name
|
|
155
|
+
*
|
|
156
|
+
* @param paymentHeader - Base64-encoded payment payload
|
|
157
|
+
* @param headerName - Header name to use ('X-PAYMENT' or 'PAYMENT-SIGNATURE')
|
|
158
|
+
* @returns Object with a single header entry
|
|
159
|
+
*
|
|
160
|
+
* @example
|
|
161
|
+
* ```ts
|
|
162
|
+
* // Use with fetch spread operator
|
|
163
|
+
* fetch(url, {
|
|
164
|
+
* headers: {
|
|
165
|
+
* 'Content-Type': 'application/json',
|
|
166
|
+
* ...getPaymentHeader(result.paymentHeader, 'X-PAYMENT'),
|
|
167
|
+
* },
|
|
168
|
+
* });
|
|
169
|
+
* ```
|
|
170
|
+
*/
|
|
171
|
+
declare function getPaymentHeader(paymentHeader: string, headerName?: X402HeaderName): Record<X402HeaderName, string>;
|
|
172
|
+
/**
|
|
173
|
+
* Default x402 payment header name
|
|
174
|
+
*
|
|
175
|
+
* Use 'X-PAYMENT' for maximum compatibility with all facilitators.
|
|
176
|
+
* Use 'PAYMENT-SIGNATURE' for x402 v2 compliance.
|
|
177
|
+
*/
|
|
178
|
+
declare const DEFAULT_PAYMENT_HEADER: X402HeaderName;
|
|
179
|
+
/**
|
|
180
|
+
* All supported x402 payment header names
|
|
181
|
+
*/
|
|
182
|
+
declare const PAYMENT_HEADER_NAMES: readonly X402HeaderName[];
|
|
131
183
|
|
|
132
|
-
export { caip2ToChain, chainToCAIP2, convertX402Header, createX402Header, createX402V1Header, createX402V2Header, decodeX402Header, detectX402Version, encodeX402Header, generatePaymentOptions, isCAIP2Format, parseNetworkIdentifier, validateAmount, validateRecipient };
|
|
184
|
+
export { DEFAULT_PAYMENT_HEADER, PAYMENT_HEADER_NAMES, caip2ToChain, chainToCAIP2, convertX402Header, createPaymentHeaders, createX402Header, createX402V1Header, createX402V2Header, decodeX402Header, detectX402Version, encodeX402Header, generatePaymentOptions, getPaymentHeader, isCAIP2Format, parseNetworkIdentifier, validateAmount, validateRecipient };
|
package/dist/utils/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { l as X402Version, m as X402Header, q as X402PayloadData, n as X402HeaderV1, p as X402PaymentOption, o as X402HeaderV2, C as ChainConfig, g as PaymentHeaders, X as X402HeaderName } from '../index-D-dO_FoP.js';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* uvd-x402-sdk - x402 Protocol Utilities
|
|
@@ -101,11 +101,12 @@ declare function isCAIP2Format(network: string): boolean;
|
|
|
101
101
|
declare function convertX402Header(header: X402Header, targetVersion: X402Version): X402Header;
|
|
102
102
|
|
|
103
103
|
/**
|
|
104
|
-
* uvd-x402-sdk - Validation Utilities
|
|
104
|
+
* uvd-x402-sdk - Validation and Payment Header Utilities
|
|
105
105
|
*
|
|
106
|
-
* Functions for validating payment parameters
|
|
107
|
-
*
|
|
106
|
+
* Functions for validating payment parameters and creating
|
|
107
|
+
* payment headers for HTTP requests.
|
|
108
108
|
*/
|
|
109
|
+
|
|
109
110
|
/**
|
|
110
111
|
* Validate that a recipient address is present and valid
|
|
111
112
|
*
|
|
@@ -128,5 +129,56 @@ declare function validateRecipient(recipient: string | undefined | null, network
|
|
|
128
129
|
* @throws X402Error with code 'INVALID_AMOUNT' if validation fails
|
|
129
130
|
*/
|
|
130
131
|
declare function validateAmount(amount: string | undefined | null): asserts amount is string;
|
|
132
|
+
/**
|
|
133
|
+
* Create payment headers object from a base64-encoded payload
|
|
134
|
+
*
|
|
135
|
+
* Returns an object with both X-PAYMENT and PAYMENT-SIGNATURE headers,
|
|
136
|
+
* making it easy to use either header format.
|
|
137
|
+
*
|
|
138
|
+
* @param paymentHeader - Base64-encoded payment payload
|
|
139
|
+
* @returns PaymentHeaders object with both header formats
|
|
140
|
+
*
|
|
141
|
+
* @example
|
|
142
|
+
* ```ts
|
|
143
|
+
* const headers = createPaymentHeaders(paymentHeader);
|
|
144
|
+
*
|
|
145
|
+
* // Use v1 header (most compatible)
|
|
146
|
+
* fetch(url, { headers: { 'X-PAYMENT': headers['X-PAYMENT'] } });
|
|
147
|
+
*
|
|
148
|
+
* // Use v2 header
|
|
149
|
+
* fetch(url, { headers: { 'PAYMENT-SIGNATURE': headers['PAYMENT-SIGNATURE'] } });
|
|
150
|
+
* ```
|
|
151
|
+
*/
|
|
152
|
+
declare function createPaymentHeaders(paymentHeader: string): PaymentHeaders;
|
|
153
|
+
/**
|
|
154
|
+
* Get a single payment header by name
|
|
155
|
+
*
|
|
156
|
+
* @param paymentHeader - Base64-encoded payment payload
|
|
157
|
+
* @param headerName - Header name to use ('X-PAYMENT' or 'PAYMENT-SIGNATURE')
|
|
158
|
+
* @returns Object with a single header entry
|
|
159
|
+
*
|
|
160
|
+
* @example
|
|
161
|
+
* ```ts
|
|
162
|
+
* // Use with fetch spread operator
|
|
163
|
+
* fetch(url, {
|
|
164
|
+
* headers: {
|
|
165
|
+
* 'Content-Type': 'application/json',
|
|
166
|
+
* ...getPaymentHeader(result.paymentHeader, 'X-PAYMENT'),
|
|
167
|
+
* },
|
|
168
|
+
* });
|
|
169
|
+
* ```
|
|
170
|
+
*/
|
|
171
|
+
declare function getPaymentHeader(paymentHeader: string, headerName?: X402HeaderName): Record<X402HeaderName, string>;
|
|
172
|
+
/**
|
|
173
|
+
* Default x402 payment header name
|
|
174
|
+
*
|
|
175
|
+
* Use 'X-PAYMENT' for maximum compatibility with all facilitators.
|
|
176
|
+
* Use 'PAYMENT-SIGNATURE' for x402 v2 compliance.
|
|
177
|
+
*/
|
|
178
|
+
declare const DEFAULT_PAYMENT_HEADER: X402HeaderName;
|
|
179
|
+
/**
|
|
180
|
+
* All supported x402 payment header names
|
|
181
|
+
*/
|
|
182
|
+
declare const PAYMENT_HEADER_NAMES: readonly X402HeaderName[];
|
|
131
183
|
|
|
132
|
-
export { caip2ToChain, chainToCAIP2, convertX402Header, createX402Header, createX402V1Header, createX402V2Header, decodeX402Header, detectX402Version, encodeX402Header, generatePaymentOptions, isCAIP2Format, parseNetworkIdentifier, validateAmount, validateRecipient };
|
|
184
|
+
export { DEFAULT_PAYMENT_HEADER, PAYMENT_HEADER_NAMES, caip2ToChain, chainToCAIP2, convertX402Header, createPaymentHeaders, createX402Header, createX402V1Header, createX402V2Header, decodeX402Header, detectX402Version, encodeX402Header, generatePaymentOptions, getPaymentHeader, isCAIP2Format, parseNetworkIdentifier, validateAmount, validateRecipient };
|
package/dist/utils/index.js
CHANGED
|
@@ -19,7 +19,10 @@ var CAIP2_IDENTIFIERS = {
|
|
|
19
19
|
// Stellar
|
|
20
20
|
stellar: "stellar:pubnet",
|
|
21
21
|
// NEAR
|
|
22
|
-
near: "near:mainnet"
|
|
22
|
+
near: "near:mainnet",
|
|
23
|
+
// Algorand
|
|
24
|
+
algorand: "algorand:mainnet",
|
|
25
|
+
"algorand-testnet": "algorand:testnet"
|
|
23
26
|
};
|
|
24
27
|
var CAIP2_TO_CHAIN = Object.fromEntries(
|
|
25
28
|
Object.entries(CAIP2_IDENTIFIERS).map(([k, v]) => [v, k])
|
|
@@ -561,6 +564,80 @@ var SUPPORTED_CHAINS = {
|
|
|
561
564
|
enabled: true
|
|
562
565
|
// NEP-366 meta-transactions supported
|
|
563
566
|
}
|
|
567
|
+
},
|
|
568
|
+
// ============================================================================
|
|
569
|
+
// ALGORAND (2 networks) - Uses ASA transfers with atomic transaction groups
|
|
570
|
+
// ============================================================================
|
|
571
|
+
algorand: {
|
|
572
|
+
chainId: 0,
|
|
573
|
+
// Non-EVM (Algorand uses genesis hash for network identification)
|
|
574
|
+
chainIdHex: "0x0",
|
|
575
|
+
name: "algorand",
|
|
576
|
+
displayName: "Algorand",
|
|
577
|
+
networkType: "algorand",
|
|
578
|
+
rpcUrl: "https://mainnet-api.algonode.cloud",
|
|
579
|
+
explorerUrl: "https://allo.info",
|
|
580
|
+
nativeCurrency: {
|
|
581
|
+
name: "Algo",
|
|
582
|
+
symbol: "ALGO",
|
|
583
|
+
decimals: 6
|
|
584
|
+
// Algorand uses 6 decimals (microAlgos)
|
|
585
|
+
},
|
|
586
|
+
usdc: {
|
|
587
|
+
address: "31566704",
|
|
588
|
+
// USDC ASA ID on Algorand mainnet
|
|
589
|
+
decimals: 6,
|
|
590
|
+
name: "USDC",
|
|
591
|
+
version: "1"
|
|
592
|
+
},
|
|
593
|
+
tokens: {
|
|
594
|
+
usdc: {
|
|
595
|
+
address: "31566704",
|
|
596
|
+
// USDC ASA ID on Algorand mainnet
|
|
597
|
+
decimals: 6,
|
|
598
|
+
name: "USDC",
|
|
599
|
+
version: "1"
|
|
600
|
+
}
|
|
601
|
+
},
|
|
602
|
+
x402: {
|
|
603
|
+
facilitatorUrl: DEFAULT_FACILITATOR_URL,
|
|
604
|
+
enabled: true
|
|
605
|
+
}
|
|
606
|
+
},
|
|
607
|
+
"algorand-testnet": {
|
|
608
|
+
chainId: 0,
|
|
609
|
+
// Non-EVM
|
|
610
|
+
chainIdHex: "0x0",
|
|
611
|
+
name: "algorand-testnet",
|
|
612
|
+
displayName: "Algorand Testnet",
|
|
613
|
+
networkType: "algorand",
|
|
614
|
+
rpcUrl: "https://testnet-api.algonode.cloud",
|
|
615
|
+
explorerUrl: "https://testnet.allo.info",
|
|
616
|
+
nativeCurrency: {
|
|
617
|
+
name: "Algo",
|
|
618
|
+
symbol: "ALGO",
|
|
619
|
+
decimals: 6
|
|
620
|
+
},
|
|
621
|
+
usdc: {
|
|
622
|
+
address: "10458941",
|
|
623
|
+
// USDC ASA ID on Algorand testnet
|
|
624
|
+
decimals: 6,
|
|
625
|
+
name: "USDC",
|
|
626
|
+
version: "1"
|
|
627
|
+
},
|
|
628
|
+
tokens: {
|
|
629
|
+
usdc: {
|
|
630
|
+
address: "10458941",
|
|
631
|
+
// USDC ASA ID on Algorand testnet
|
|
632
|
+
decimals: 6,
|
|
633
|
+
name: "USDC",
|
|
634
|
+
version: "1"
|
|
635
|
+
}
|
|
636
|
+
},
|
|
637
|
+
x402: {
|
|
638
|
+
facilitatorUrl: DEFAULT_FACILITATOR_URL,
|
|
639
|
+
enabled: true
|
|
640
|
+
}
|
|
564
641
|
}
|
|
565
642
|
};
|
|
566
643
|
function getChainByName(name) {
|
|
@@ -786,10 +863,27 @@ function validateAmount(amount) {
|
|
|
786
863
|
);
|
|
787
864
|
}
|
|
788
865
|
}
|
|
866
|
+
function createPaymentHeaders(paymentHeader) {
|
|
867
|
+
return {
|
|
868
|
+
"X-PAYMENT": paymentHeader,
|
|
869
|
+
"PAYMENT-SIGNATURE": paymentHeader
|
|
870
|
+
};
|
|
871
|
+
}
|
|
872
|
+
function getPaymentHeader(paymentHeader, headerName = "X-PAYMENT") {
|
|
873
|
+
return { [headerName]: paymentHeader };
|
|
874
|
+
}
|
|
875
|
+
var DEFAULT_PAYMENT_HEADER = "X-PAYMENT";
|
|
876
|
+
var PAYMENT_HEADER_NAMES = [
|
|
877
|
+
"X-PAYMENT",
|
|
878
|
+
"PAYMENT-SIGNATURE"
|
|
879
|
+
];
|
|
789
880
|
|
|
881
|
+
exports.DEFAULT_PAYMENT_HEADER = DEFAULT_PAYMENT_HEADER;
|
|
882
|
+
exports.PAYMENT_HEADER_NAMES = PAYMENT_HEADER_NAMES;
|
|
790
883
|
exports.caip2ToChain = caip2ToChain;
|
|
791
884
|
exports.chainToCAIP2 = chainToCAIP2;
|
|
792
885
|
exports.convertX402Header = convertX402Header;
|
|
886
|
+
exports.createPaymentHeaders = createPaymentHeaders;
|
|
793
887
|
exports.createX402Header = createX402Header;
|
|
794
888
|
exports.createX402V1Header = createX402V1Header;
|
|
795
889
|
exports.createX402V2Header = createX402V2Header;
|
|
@@ -797,6 +891,7 @@ exports.decodeX402Header = decodeX402Header;
|
|
|
797
891
|
exports.detectX402Version = detectX402Version;
|
|
798
892
|
exports.encodeX402Header = encodeX402Header;
|
|
799
893
|
exports.generatePaymentOptions = generatePaymentOptions;
|
|
894
|
+
exports.getPaymentHeader = getPaymentHeader;
|
|
800
895
|
exports.isCAIP2Format = isCAIP2Format;
|
|
801
896
|
exports.parseNetworkIdentifier = parseNetworkIdentifier;
|
|
802
897
|
exports.validateAmount = validateAmount;
|