@relai-fi/x402 0.5.11 → 0.5.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/README.md +32 -3
- package/dist/client.cjs +31 -10
- package/dist/client.cjs.map +1 -1
- package/dist/client.d.cts +8 -1
- package/dist/client.d.ts +8 -1
- package/dist/client.js +31 -10
- package/dist/client.js.map +1 -1
- package/dist/index.cjs +41 -11
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +41 -11
- package/dist/index.js.map +1 -1
- package/dist/react/index.cjs +44 -11
- package/dist/react/index.cjs.map +1 -1
- package/dist/react/index.d.cts +3 -1
- package/dist/react/index.d.ts +3 -1
- package/dist/react/index.js +44 -11
- package/dist/react/index.js.map +1 -1
- package/dist/server.cjs +10 -1
- package/dist/server.cjs.map +1 -1
- package/dist/server.js +10 -1
- package/dist/server.js.map +1 -1
- package/package.json +2 -3
- package/examples/skale-bite-nextjs/.next/trace +0 -1
package/dist/index.d.cts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export { DynamicPrice, PaymentInfo, ProtectOptions, default as Relai, RelaiIntegritasFlow, RelaiIntegritasOptions, RelaiServerConfig, SettleResult, StripePayTo, default, stripePayTo } from './server.cjs';
|
|
2
|
-
export { RelayWebSocketFactory, RelayWebSocketLike, X402Client, X402ClientConfig, X402FetchInit, X402IntegritasConfig, X402IntegritasFlow, X402RelayWsConfig, X402RelayWsError, X402RelayWsResponse, X402RequestOptions, default as createX402Client } from './client.cjs';
|
|
2
|
+
export { RelayWebSocketFactory, RelayWebSocketLike, X402Client, X402ClientConfig, X402FetchInit, X402IntegritasConfig, X402IntegritasFlow, X402NetworkSelectionMode, X402RelayWsConfig, X402RelayWsError, X402RelayWsResponse, X402RequestOptions, default as createX402Client } from './client.cjs';
|
|
3
3
|
export { A as AcceptsExtra, B as BASE_MAINNET_NETWORK, C as CAIP2_TO_NETWORK, b as CHAIN_IDS, E as EXPLORER_TX_URL, l as EvmWallet, N as NETWORK_CAIP2, e as NETWORK_LABELS, d as NETWORK_TOKENS, c as NetworkToken, P as PaymentAccept, o as PaymentRequired, R as RELAI_FACILITATOR_URL, h as RELAI_NETWORKS, a as RelaiNetwork, m as ResourceInfo, S as SOLANA_MAINNET_NETWORK, k as SolanaWallet, U as USDC_ADDRESSES, g as USDC_BASE, f as USDC_SOLANA, W as WalletSet, j as isEvm, i as isSolana, n as normalizeNetwork, r as resolveToken } from './types-CWtUxi3l.cjs';
|
|
4
4
|
export { NETWORK_V1_TO_V2, NETWORK_V2_TO_V1, convertPayloadToVersion, convertV1ToV2, convertV2ToV1, detectPayloadVersion, formatUsd, fromAtomicUnits, isEvmNetwork, isSolanaNetwork, networkV1ToV2, networkV2ToV1, normalizePaymentHeader, toAtomicUnits } from './utils/index.cjs';
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export { DynamicPrice, PaymentInfo, ProtectOptions, default as Relai, RelaiIntegritasFlow, RelaiIntegritasOptions, RelaiServerConfig, SettleResult, StripePayTo, default, stripePayTo } from './server.js';
|
|
2
|
-
export { RelayWebSocketFactory, RelayWebSocketLike, X402Client, X402ClientConfig, X402FetchInit, X402IntegritasConfig, X402IntegritasFlow, X402RelayWsConfig, X402RelayWsError, X402RelayWsResponse, X402RequestOptions, default as createX402Client } from './client.js';
|
|
2
|
+
export { RelayWebSocketFactory, RelayWebSocketLike, X402Client, X402ClientConfig, X402FetchInit, X402IntegritasConfig, X402IntegritasFlow, X402NetworkSelectionMode, X402RelayWsConfig, X402RelayWsError, X402RelayWsResponse, X402RequestOptions, default as createX402Client } from './client.js';
|
|
3
3
|
export { A as AcceptsExtra, B as BASE_MAINNET_NETWORK, C as CAIP2_TO_NETWORK, b as CHAIN_IDS, E as EXPLORER_TX_URL, l as EvmWallet, N as NETWORK_CAIP2, e as NETWORK_LABELS, d as NETWORK_TOKENS, c as NetworkToken, P as PaymentAccept, o as PaymentRequired, R as RELAI_FACILITATOR_URL, h as RELAI_NETWORKS, a as RelaiNetwork, m as ResourceInfo, S as SOLANA_MAINNET_NETWORK, k as SolanaWallet, U as USDC_ADDRESSES, g as USDC_BASE, f as USDC_SOLANA, W as WalletSet, j as isEvm, i as isSolana, n as normalizeNetwork, r as resolveToken } from './types-CWtUxi3l.js';
|
|
4
4
|
export { NETWORK_V1_TO_V2, NETWORK_V2_TO_V1, convertPayloadToVersion, convertV1ToV2, convertV2ToV1, detectPayloadVersion, formatUsd, fromAtomicUnits, isEvmNetwork, isSolanaNetwork, networkV1ToV2, networkV2ToV1, normalizePaymentHeader, toAtomicUnits } from './utils/index.js';
|
package/dist/index.js
CHANGED
|
@@ -137,6 +137,14 @@ var NETWORK_TOKENS = {
|
|
|
137
137
|
decimals: 6,
|
|
138
138
|
domainVersion: "2",
|
|
139
139
|
isStableUsd: true
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
address: "0xB6BB22f4D1e58E9E43eFa2ec7F572D215B3CF08a",
|
|
143
|
+
symbol: "BBRL",
|
|
144
|
+
name: "Braza BRL",
|
|
145
|
+
decimals: 18,
|
|
146
|
+
domainVersion: "2",
|
|
147
|
+
isStableUsd: false
|
|
140
148
|
}
|
|
141
149
|
],
|
|
142
150
|
"ethereum": [
|
|
@@ -235,7 +243,8 @@ var USD_PRICE_CACHE_TTL_MS = 60 * 1e3;
|
|
|
235
243
|
var usdPriceCache = /* @__PURE__ */ new Map();
|
|
236
244
|
var COINGECKO_ID_BY_SYMBOL = {
|
|
237
245
|
WETH: "ethereum",
|
|
238
|
-
WBTC: "bitcoin"
|
|
246
|
+
WBTC: "bitcoin",
|
|
247
|
+
BBRL: "braza-brl"
|
|
239
248
|
};
|
|
240
249
|
function isStableUsdToken(token) {
|
|
241
250
|
if (token.isStableUsd === true) return true;
|
|
@@ -648,6 +657,7 @@ function createX402Client(config) {
|
|
|
648
657
|
facilitatorUrl = RELAI_FACILITATOR_URL,
|
|
649
658
|
relayWs,
|
|
650
659
|
preferredNetwork,
|
|
660
|
+
networkSelectionMode = "prefer_then_any",
|
|
651
661
|
solanaRpcUrl = "https://api.mainnet-beta.solana.com",
|
|
652
662
|
evmRpcUrls = {},
|
|
653
663
|
maxAmountAtomic,
|
|
@@ -1084,23 +1094,45 @@ function createX402Client(config) {
|
|
|
1084
1094
|
headers
|
|
1085
1095
|
});
|
|
1086
1096
|
}
|
|
1097
|
+
function selectAcceptForWallet(a) {
|
|
1098
|
+
const net = a.network || "";
|
|
1099
|
+
if (isSolana(net) && hasSolanaWallet) {
|
|
1100
|
+
return { accept: a, chain: "solana" };
|
|
1101
|
+
}
|
|
1102
|
+
if (isEvm(net) && effectiveWallets.evm) {
|
|
1103
|
+
return { accept: a, chain: "evm" };
|
|
1104
|
+
}
|
|
1105
|
+
return null;
|
|
1106
|
+
}
|
|
1107
|
+
function buildNoWalletError(accepts, isWs) {
|
|
1108
|
+
const networks = accepts.map((a) => a.network).join(", ");
|
|
1109
|
+
if (preferredNetwork && networkSelectionMode === "strict_preferred") {
|
|
1110
|
+
const preferredCaip2 = NETWORK_CAIP2[preferredNetwork];
|
|
1111
|
+
return `[relai-x402] Preferred network ${preferredNetwork} (${preferredCaip2}) is required, but no compatible wallet is connected. Available networks: ${networks}`;
|
|
1112
|
+
}
|
|
1113
|
+
return `[relai-x402] No wallet available for${isWs ? " WS" : ""} networks: ${networks}`;
|
|
1114
|
+
}
|
|
1087
1115
|
function selectAccept(accepts) {
|
|
1088
1116
|
if (preferredNetwork) {
|
|
1089
1117
|
const caip2 = NETWORK_CAIP2[preferredNetwork];
|
|
1090
1118
|
for (const a of accepts) {
|
|
1091
1119
|
const net = a.network || "";
|
|
1092
1120
|
if (net === preferredNetwork || net === caip2) {
|
|
1093
|
-
const
|
|
1094
|
-
if (
|
|
1095
|
-
return
|
|
1121
|
+
const selected = selectAcceptForWallet(a);
|
|
1122
|
+
if (selected) {
|
|
1123
|
+
return selected;
|
|
1096
1124
|
}
|
|
1097
1125
|
}
|
|
1098
1126
|
}
|
|
1127
|
+
if (networkSelectionMode === "strict_preferred") {
|
|
1128
|
+
return null;
|
|
1129
|
+
}
|
|
1099
1130
|
}
|
|
1100
1131
|
for (const a of accepts) {
|
|
1101
|
-
const
|
|
1102
|
-
if (
|
|
1103
|
-
|
|
1132
|
+
const selected = selectAcceptForWallet(a);
|
|
1133
|
+
if (selected) {
|
|
1134
|
+
return selected;
|
|
1135
|
+
}
|
|
1104
1136
|
}
|
|
1105
1137
|
return null;
|
|
1106
1138
|
}
|
|
@@ -1424,8 +1456,7 @@ function createX402Client(config) {
|
|
|
1424
1456
|
}
|
|
1425
1457
|
const wsSelected = selectAccept(wsAccepts);
|
|
1426
1458
|
if (!wsSelected) {
|
|
1427
|
-
|
|
1428
|
-
throw new Error(`[relai-x402] No wallet available for WS networks: ${networks}`);
|
|
1459
|
+
throw new Error(buildNoWalletError(wsAccepts, true));
|
|
1429
1460
|
}
|
|
1430
1461
|
const { accept: accept2, chain: chain2 } = wsSelected;
|
|
1431
1462
|
const amount2 = accept2.amount || accept2.maxAmountRequired;
|
|
@@ -1497,8 +1528,7 @@ function createX402Client(config) {
|
|
|
1497
1528
|
if (!accepts.length) throw new Error("[relai-x402] No payment options in 402 response");
|
|
1498
1529
|
const selected = selectAccept(accepts);
|
|
1499
1530
|
if (!selected) {
|
|
1500
|
-
|
|
1501
|
-
throw new Error(`[relai-x402] No wallet available for networks: ${networks}`);
|
|
1531
|
+
throw new Error(buildNoWalletError(accepts, false));
|
|
1502
1532
|
}
|
|
1503
1533
|
const { accept, chain } = selected;
|
|
1504
1534
|
const amount = accept.amount || accept.maxAmountRequired;
|