@abstraxn/signer-react 3.3.0 → 3.3.1

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/CHANGELOG.md CHANGED
@@ -10,7 +10,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
10
10
  ### Added
11
11
 
12
12
  - **Solana gasless relayer hooks** – Added `useSolanaGasless()` and `useSignAndSendSolanaGaslessTxn()` to support build/sign/send gasless flow from React apps.
13
- - **Solana gasless provider config** – Added `solanaGasless` in `AbstraxnProviderConfig` for relayer settings (`enabled`, `relayerBaseUrl`, `apiKey`, `networkChainId`, and optional polling defaults).
13
+ - **Solana gasless provider config** – Added `solanaGasless` in `AbstraxnProviderConfig` for relayer settings (`enabled`, `relayerUrl`, and optional polling defaults).
14
14
 
15
15
  ### Changed
16
16
 
package/README.md CHANGED
@@ -29,9 +29,7 @@ const providerConfig: AbstraxnProviderConfig = {
29
29
  apiKey: 'your-api-key-here',
30
30
  solanaGasless: {
31
31
  enabled: true,
32
- relayerBaseUrl: 'https://solana-hub.abstraxn.com',
33
- apiKey: 'your-solana-relayer-api-key',
34
- networkChainId: 101, // Solana mainnet
32
+ relayerUrl: 'https://dev-solana-relayer-api.abstraxn.com/api/v1/103?apikey=your-solana-relayer-api-key',
35
33
  },
36
34
  };
37
35
 
@@ -8622,12 +8622,9 @@ export type SolanaGaslessBuildParams = Omit<SolanaGaslessBuildTxParams, 'connect
8622
8622
  };
8623
8623
  export interface SolanaGaslessConfigResolved {
8624
8624
  enabled: boolean;
8625
- relayerBaseUrl: string;
8626
- apiKey: string;
8627
- networkChainId: number;
8625
+ relayerUrl: string;
8628
8626
  defaultPollMs?: number;
8629
8627
  defaultTimeoutMs?: number;
8630
- relayerUrl: string;
8631
8628
  }
8632
8629
  export declare function useSolanaGasless(): {
8633
8630
  isEnabled: boolean;
package/dist/src/hooks.js CHANGED
@@ -1518,20 +1518,6 @@ export function useSignAndSendSolanaTxn(connection) {
1518
1518
  }, [connection, isConnected, whoami, signSolanaTransactionViaAPI, verifySignMfa]);
1519
1519
  return { signAndSendSolanaTxn, isConnected, solanaAddress: whoami?.solanaAddress ?? null };
1520
1520
  }
1521
- function buildSolanaRelayerUrl(relayerBaseUrl, networkChainId, apiKey) {
1522
- const parsed = new URL(relayerBaseUrl);
1523
- const hasTxPath = /\/tx\/\d+\/?$/.test(parsed.pathname);
1524
- const hasChainOnlyPath = /\/\d+\/?$/.test(parsed.pathname);
1525
- if (!hasTxPath && !hasChainOnlyPath) {
1526
- const basePath = parsed.pathname.replace(/\/$/, "");
1527
- const withApiV1 = /\/api\/v1$/.test(basePath)
1528
- ? basePath
1529
- : `${basePath}/api/v1`;
1530
- parsed.pathname = `${withApiV1}/tx/${networkChainId}/`;
1531
- }
1532
- parsed.searchParams.set("apikey", apiKey);
1533
- return parsed.toString();
1534
- }
1535
1521
  function hexToBase64SignedTransaction(signedHex) {
1536
1522
  const hex = signedHex.startsWith('0x') ? signedHex.slice(2) : signedHex;
1537
1523
  const bytes = new Uint8Array(hex.match(/.{1,2}/g)?.map((byte) => parseInt(byte, 16)) ?? []);
@@ -1549,21 +1535,14 @@ export function useSolanaGasless() {
1549
1535
  const resolvedConfig = useMemo(() => {
1550
1536
  if (!solanaGaslessConfig?.enabled)
1551
1537
  return null;
1552
- const relayerBaseUrl = solanaGaslessConfig.relayerBaseUrl?.trim();
1553
- const apiKey = solanaGaslessConfig.apiKey?.trim();
1554
- const networkChainId = solanaGaslessConfig.networkChainId;
1555
- if (!relayerBaseUrl || !apiKey || !networkChainId)
1538
+ const relayerUrl = solanaGaslessConfig.relayerUrl?.trim();
1539
+ if (!relayerUrl)
1556
1540
  return null;
1557
- const base = relayerBaseUrl.replace(/\/$/, '');
1558
- const relayerUrl = buildSolanaRelayerUrl(base, networkChainId, apiKey);
1559
1541
  return {
1560
1542
  enabled: true,
1561
- relayerBaseUrl: base,
1562
- apiKey,
1563
- networkChainId,
1543
+ relayerUrl,
1564
1544
  defaultPollMs: solanaGaslessConfig.defaultPollMs,
1565
1545
  defaultTimeoutMs: solanaGaslessConfig.defaultTimeoutMs,
1566
- relayerUrl,
1567
1546
  };
1568
1547
  }, [solanaGaslessConfig]);
1569
1548
  const relayerClient = useMemo(() => {
@@ -1579,7 +1558,7 @@ export function useSolanaGasless() {
1579
1558
  if (!isConnected)
1580
1559
  throw new Error('Wallet is not connected');
1581
1560
  if (!resolvedConfig) {
1582
- throw new Error('Solana gasless is not configured. Set config.solanaGasless with enabled, relayerBaseUrl, apiKey and networkChainId.');
1561
+ throw new Error('Solana gasless is not configured. Set config.solanaGasless with enabled and relayerUrl.');
1583
1562
  }
1584
1563
  if (!relayerClient)
1585
1564
  throw new Error('Failed to initialize Solana relayer client');
@@ -153,17 +153,10 @@ export interface SolanaGaslessConfig {
153
153
  */
154
154
  enabled?: boolean;
155
155
  /**
156
- * Base relayer URL without path/query (e.g. https://relayer.abstraxn.com)
156
+ * Full relayer URL including chain id and apikey query param.
157
+ * Example: https://dev-solana-relayer-api.abstraxn.com/api/v1/103?apikey=your_api_key
157
158
  */
158
- relayerBaseUrl?: string;
159
- /**
160
- * API key used by relayer endpoints.
161
- */
162
- apiKey?: string;
163
- /**
164
- * Solana chain/network id used in relayer path (/tx/:chainId).
165
- */
166
- networkChainId?: number;
159
+ relayerUrl?: string;
167
160
  /**
168
161
  * Optional default polling interval in ms for status checks.
169
162
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@abstraxn/signer-react",
3
- "version": "3.3.0",
3
+ "version": "3.3.1",
4
4
  "description": "React SDK for Abstraxn Wallet - React components, hooks, and providers for seamless Web3 wallet integration",
5
5
  "main": "./dist/src/index.js",
6
6
  "module": "./dist/src/index.js",
@@ -41,7 +41,7 @@
41
41
  },
42
42
  "dependencies": {
43
43
  "@abstraxn/signer-core": "2.1.2",
44
- "@abstraxn/solana-relayer": "^0.0.2",
44
+ "@abstraxn/solana-relayer": "^1.0.0",
45
45
  "@solana/wallet-adapter-base": "^0.9.27",
46
46
  "@solana/wallet-adapter-react": "^0.15.39",
47
47
  "@solana/wallet-adapter-react-ui": "^0.9.39",