@relai-fi/x402 0.5.27 → 0.5.28

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.cts CHANGED
@@ -1,4 +1,5 @@
1
1
  export { DynamicPrice, PaymentInfo, ProtectOptions, default as Relai, RelaiIntegritasFlow, RelaiIntegritasOptions, RelaiServerConfig, SettleResult, StripePayTo, default, stripePayTo } from './server.cjs';
2
2
  export { RelayWebSocketFactory, RelayWebSocketLike, X402Client, X402ClientConfig, X402FetchInit, X402IntegritasConfig, X402IntegritasFlow, X402NetworkSelectionMode, X402RelayWsConfig, X402RelayWsError, X402RelayWsResponse, X402RequestOptions, default as createX402Client } from './client.cjs';
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-BSCuAZJb.cjs';
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-Y9ni5XwY.cjs';
4
+ export { BridgeBalances, BridgeQuoteResult, BridgeResult } from './management.cjs';
4
5
  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,5 @@
1
1
  export { DynamicPrice, PaymentInfo, ProtectOptions, default as Relai, RelaiIntegritasFlow, RelaiIntegritasOptions, RelaiServerConfig, SettleResult, StripePayTo, default, stripePayTo } from './server.js';
2
2
  export { RelayWebSocketFactory, RelayWebSocketLike, X402Client, X402ClientConfig, X402FetchInit, X402IntegritasConfig, X402IntegritasFlow, X402NetworkSelectionMode, X402RelayWsConfig, X402RelayWsError, X402RelayWsResponse, X402RequestOptions, default as createX402Client } from './client.js';
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-BSCuAZJb.js';
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-Y9ni5XwY.js';
4
+ export { BridgeBalances, BridgeQuoteResult, BridgeResult } from './management.js';
4
5
  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
@@ -2,6 +2,7 @@
2
2
  var RELAI_FACILITATOR_URL = "https://facilitator.x402.fi";
3
3
  var NETWORK_CAIP2 = {
4
4
  "solana": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
5
+ "solana-devnet": "solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1",
5
6
  "base": "eip155:8453",
6
7
  "avalanche": "eip155:43114",
7
8
  "skale-base": "eip155:1187947933",
@@ -33,6 +34,14 @@ var NETWORK_TOKENS = {
33
34
  decimals: 6
34
35
  }
35
36
  ],
37
+ "solana-devnet": [
38
+ {
39
+ address: "4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU",
40
+ symbol: "USDC",
41
+ name: "USD Coin (Devnet)",
42
+ decimals: 6
43
+ }
44
+ ],
36
45
  "base": [
37
46
  { address: "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913", symbol: "USDC", name: "USD Coin", decimals: 6, domainVersion: "2", isStableUsd: true }
38
47
  ],
@@ -164,6 +173,7 @@ function resolveToken(network, asset) {
164
173
  }
165
174
  var USDC_ADDRESSES = {
166
175
  "solana": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
176
+ "solana-devnet": "4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU",
167
177
  "base": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
168
178
  "avalanche": "0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E",
169
179
  "skale-base": "0x85889c8c714505E0c94b30fcfcF64fE3Ac8FCb20",
@@ -175,6 +185,7 @@ var USDC_ADDRESSES = {
175
185
  };
176
186
  var EXPLORER_TX_URL = {
177
187
  "solana": (tx) => `https://solscan.io/tx/${tx}`,
188
+ "solana-devnet": (tx) => `https://solscan.io/tx/${tx}?cluster=devnet`,
178
189
  "base": (tx) => `https://basescan.org/tx/${tx}`,
179
190
  "avalanche": (tx) => `https://snowtrace.io/tx/${tx}`,
180
191
  "skale-base": (tx) => `https://skale-base-explorer.skalenodes.com/tx/${tx}`,
@@ -186,6 +197,7 @@ var EXPLORER_TX_URL = {
186
197
  };
187
198
  var NETWORK_LABELS = {
188
199
  "solana": "Solana",
200
+ "solana-devnet": "Solana Devnet",
189
201
  "base": "Base",
190
202
  "avalanche": "Avalanche",
191
203
  "skale-base": "SKALE Base",
@@ -201,6 +213,7 @@ var USDC_SOLANA = USDC_ADDRESSES["solana"];
201
213
  var USDC_BASE = USDC_ADDRESSES["base"];
202
214
  var RELAI_NETWORKS = [
203
215
  "solana",
216
+ "solana-devnet",
204
217
  "base",
205
218
  "avalanche",
206
219
  "skale-base",
@@ -211,7 +224,7 @@ var RELAI_NETWORKS = [
211
224
  "telos"
212
225
  ];
213
226
  function isSolana(network) {
214
- return network === "solana" || network.startsWith("solana:");
227
+ return network === "solana" || network === "solana-devnet" || network.startsWith("solana:");
215
228
  }
216
229
  function isEvm(network) {
217
230
  return ["base", "avalanche", "skale-base", "skale-base-sepolia", "skale-bite", "polygon", "ethereum", "telos"].includes(network) || network.startsWith("eip155:");
@@ -543,7 +556,7 @@ var Relai = class {
543
556
  } else {
544
557
  resolvedPayTo = options.payTo;
545
558
  }
546
- const feePayer = await self.getFeePayer(caip2);
559
+ const feePayer = options.feePayer || await self.getFeePayer(caip2);
547
560
  return res.status(402).json({
548
561
  x402Version: 2,
549
562
  error: "Payment required",
@@ -695,6 +708,7 @@ import {
695
708
  import {
696
709
  getAssociatedTokenAddress,
697
710
  createTransferCheckedInstruction,
711
+ createAssociatedTokenAccountIdempotentInstruction,
698
712
  getMint,
699
713
  TOKEN_PROGRAM_ID,
700
714
  TOKEN_2022_PROGRAM_ID
@@ -1455,11 +1469,19 @@ function createX402Client(config) {
1455
1469
  [],
1456
1470
  programId
1457
1471
  );
1472
+ const createDestAtaIx = createAssociatedTokenAccountIdempotentInstruction(
1473
+ feePayerPubkey,
1474
+ // payer (feePayer covers this)
1475
+ destinationAta,
1476
+ merchantPubkey,
1477
+ mintPubkey,
1478
+ programId
1479
+ );
1458
1480
  const { blockhash } = await connection.getLatestBlockhash("confirmed");
1459
1481
  const message = new TransactionMessage({
1460
1482
  payerKey: feePayerPubkey,
1461
1483
  recentBlockhash: blockhash,
1462
- instructions: [transferIx]
1484
+ instructions: [createDestAtaIx, transferIx]
1463
1485
  }).compileToV0Message();
1464
1486
  const transaction = new VersionedTransaction(message);
1465
1487
  const signedTx = await solWallet.signTransaction(transaction);