@layerswap/wallet-starknet 2.0.1 → 2.2.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 CHANGED
@@ -78,6 +78,19 @@ For detailed setup instructions, configuration options, and usage examples, see
78
78
  - Xverse
79
79
  - Cartridge Controller
80
80
 
81
+ ## RPC compatibility
82
+
83
+ Balance queries, NFT queries, fee estimation, and connected wallet accounts use
84
+ Starknet.js 10 through the `starknet-rpc` package alias, supporting RPC v0.10 and
85
+ v0.9. The shared `starknet` catalog stays on v8 for Starknet React, StarknetKit,
86
+ and Paradex. Paradex reuses the connected account's v10 RPC provider for
87
+ Starknet authorization reads while retaining v8 for its own chain.
88
+
89
+ RPC URLs come from the network configuration (`node_url`, or `getRpcUrls` for a
90
+ custom network adapter). Configure an endpoint that serves RPC v0.10 to use that
91
+ version. URLs are passed through unchanged, and the provider detects the RPC
92
+ version. RPC v0.8 endpoints are no longer supported by this adapter.
93
+
81
94
  ## TypeScript
82
95
 
83
96
  This package includes TypeScript definitions. All types are exported from the main entry point.
@@ -61,8 +61,8 @@ export async function resolveStarknetWallet(props) {
61
61
  try {
62
62
  const walletChain = network?.chainId;
63
63
  assertSecureRpcUrl(network?.rpcUrl);
64
- const { RpcProvider, WalletAccount } = await import('starknet');
65
- const rpcProvider = new RpcProvider({ nodeUrl: network.rpcUrl });
64
+ const { RpcProvider, WalletAccount } = await import('starknet-rpc');
65
+ const rpcProvider = await RpcProvider.create({ nodeUrl: network.rpcUrl });
66
66
  const walletAccount = new WalletAccount({ provider: rpcProvider, walletProvider: connector.wallet, address });
67
67
  const accounts = await walletAccount.requestAccounts(true);
68
68
  const account = accounts?.[0];
@@ -10,12 +10,12 @@ export class StarknetBalanceProvider extends BalanceProvider {
10
10
  return network.type === NetworkType.Starknet;
11
11
  };
12
12
  this.fetchBalance = async (address, network) => {
13
- const { Contract, RpcProvider, uint256, } = await import("starknet");
13
+ const { Contract, RpcProvider, uint256, } = await import("starknet-rpc");
14
14
  const { BigNumber } = await import("ethers");
15
15
  let balances = [];
16
16
  if (!network?.tokens)
17
17
  return;
18
- const provider = new RpcProvider({
18
+ const provider = await RpcProvider.create({
19
19
  nodeUrl: network.node_url,
20
20
  });
21
21
  const tokens = insertIfNotExists(network.tokens || [], network.token);
@@ -1,4 +1,4 @@
1
- import { Contract, RpcProvider } from "starknet";
1
+ import { Contract, RpcProvider } from "starknet-rpc";
2
2
  import { KnownInternalNames } from "@layerswap/utils";
3
3
  const NFT_ABI = [
4
4
  {
@@ -25,7 +25,7 @@ export class StarknetNftProvider {
25
25
  if (!contractAddress || !network.node_url) {
26
26
  throw new Error("Missing NFT contract address or node URL");
27
27
  }
28
- const provider = new RpcProvider({
28
+ const provider = await RpcProvider.create({
29
29
  nodeUrl: network.node_url
30
30
  });
31
31
  try {