diff --git a/.changeset/purple-readers-obey.md b/.changeset/purple-readers-obey.md new file mode 100644 index 000000000..1969aaef0 --- /dev/null +++ b/.changeset/purple-readers-obey.md @@ -0,0 +1,14 @@ +--- +'@solana/react': patch +'@solana/kit': minor +--- + +Migrate `@solana/react` to depend on `@solana/kit` as a peer dependency (replacing its individual workspace sub-package deps) and re-export `@solana/subscribable` from `@solana/kit` so React consumers have a single import root. `@solana/promises` remains as a direct dep — it's a small utility that isn't part of Kit's public surface. + +For `@solana/react` users: +- `@solana/kit` must now be installed alongside `@solana/react`. +- Apps that already use both get a single deduplicated `@solana/kit` instance — important for anything relying on shared types or `instanceof SolanaError` checks. +- Kit can be bumped independently of React within the peer range. + +For `@solana/kit` users: +- `ReactiveStreamSource`, `ReactiveStreamStore`, `ReactiveActionSource`, `ReactiveActionStore`, `ReactiveState`, `createReactiveActionStore`, `createReactiveStoreFromDataPublisherFactory`, `DataPublisher` and the rest of `@solana/subscribable`'s surface are now reachable directly through `@solana/kit`. diff --git a/packages/kit/src/index.ts b/packages/kit/src/index.ts index 25fa9ff2c..9a6e5cb5c 100644 --- a/packages/kit/src/index.ts +++ b/packages/kit/src/index.ts @@ -23,6 +23,7 @@ export * from '@solana/rpc-parsed-types'; export * from '@solana/rpc-subscriptions'; export * from '@solana/rpc-types'; export * from '@solana/signers'; +export * from '@solana/subscribable'; export * from '@solana/transaction-messages'; export * from '@solana/transactions'; export * from './create-async-generator-with-initial-value-and-slot-tracking'; diff --git a/packages/react/package.json b/packages/react/package.json index 1130d04ce..9dc25d6bf 100644 --- a/packages/react/package.json +++ b/packages/react/package.json @@ -74,15 +74,7 @@ "maintained node versions" ], "dependencies": { - "@solana/addresses": "workspace:*", - "@solana/errors": "workspace:*", - "@solana/keys": "workspace:*", - "@solana/plugin-core": "workspace:*", "@solana/promises": "workspace:*", - "@solana/signers": "workspace:*", - "@solana/subscribable": "workspace:*", - "@solana/transaction-messages": "workspace:*", - "@solana/transactions": "workspace:*", "@solana/wallet-standard-features": "^1.3.0", "@wallet-standard/base": "^1.1.0", "@wallet-standard/errors": "^0.1.1", @@ -91,9 +83,8 @@ "@wallet-standard/ui-registry": "^1.0.1" }, "devDependencies": { - "@solana/codecs-core": "workspace:*", "@solana/eslint-config": "workspace:*", - "@solana/rpc-types": "workspace:*", + "@solana/kit": "workspace:*", "@testing-library/react": "^16.3.2", "@types/react": "^19.2.15", "@types/react-dom": "^19.2.3", @@ -104,6 +95,7 @@ "react-test-renderer": "^19.2.6" }, "peerDependencies": { + "@solana/kit": "workspace:*", "react": ">=18" }, "peerDependenciesMeta": { diff --git a/packages/react/src/ClientProvider.tsx b/packages/react/src/ClientProvider.tsx index 29eb91073..aa2fcab22 100644 --- a/packages/react/src/ClientProvider.tsx +++ b/packages/react/src/ClientProvider.tsx @@ -1,4 +1,4 @@ -import type { Client } from '@solana/plugin-core'; +import type { Client } from '@solana/kit'; import React from 'react'; import { usePromise } from './usePromise'; diff --git a/packages/react/src/__tests__/ClientProvider-test.browser.tsx b/packages/react/src/__tests__/ClientProvider-test.browser.tsx index 504d72c8d..3ac99d656 100644 --- a/packages/react/src/__tests__/ClientProvider-test.browser.tsx +++ b/packages/react/src/__tests__/ClientProvider-test.browser.tsx @@ -1,12 +1,11 @@ -import { isSolanaError, SOLANA_ERROR__REACT__MISSING_PROVIDER } from '@solana/errors'; -import { Client, createClient } from '@solana/plugin-core'; +import { Client, createClient, isSolanaError, SOLANA_ERROR__REACT__MISSING_PROVIDER } from '@solana/kit'; import { act } from '@testing-library/react'; import React, { Suspense } from 'react'; import { ErrorBoundary } from 'react-error-boundary'; +import { render, renderHook } from '../__test-utils__/render'; import { ClientProvider } from '../ClientProvider'; import { useClient } from '../useClient'; -import { render, renderHook } from '../__test-utils__/render'; describe('ClientProvider + useClient', () => { it('publishes the client to descendants and returns the same reference across renders', () => { @@ -110,7 +109,7 @@ describe('ClientProvider + useClient', () => { const clientPromise = Promise.reject>(boom); // Pre-attach a catch so the rejection isn't flagged as unhandled before React's // error-boundary subscription runs. - clientPromise.catch(() => {}); + clientPromise.catch(() => { }); const onError = jest.fn(); function Probe() { useClient(); diff --git a/packages/react/src/__tests__/useAction-test.browser.tsx b/packages/react/src/__tests__/useAction-test.browser.tsx index 9ab7185b7..0d76996b4 100644 --- a/packages/react/src/__tests__/useAction-test.browser.tsx +++ b/packages/react/src/__tests__/useAction-test.browser.tsx @@ -4,7 +4,6 @@ import React from 'react'; import { renderToString } from 'react-dom/server'; import { renderHook } from '../__test-utils__/render'; - import { useAction } from '../useAction'; describe('useAction', () => { diff --git a/packages/react/src/__tests__/useClientCapability-test.browser.tsx b/packages/react/src/__tests__/useClientCapability-test.browser.tsx index d131dd5f8..5b8bf06f4 100644 --- a/packages/react/src/__tests__/useClientCapability-test.browser.tsx +++ b/packages/react/src/__tests__/useClientCapability-test.browser.tsx @@ -1,15 +1,15 @@ import { + createClient, isSolanaError, SOLANA_ERROR__REACT__MISSING_CAPABILITY, SOLANA_ERROR__REACT__MISSING_PROVIDER, -} from '@solana/errors'; -import { createClient } from '@solana/plugin-core'; +} from '@solana/kit'; import React from 'react'; +import { renderHook } from '../__test-utils__/render'; import { ClientProvider } from '../ClientProvider'; import { useClient } from '../useClient'; import { useClientCapability } from '../useClientCapability'; -import { renderHook } from '../__test-utils__/render'; type ClientWithFoo = { foo: { hello(): string } }; diff --git a/packages/react/src/__tests__/useRequest-test.browser.tsx b/packages/react/src/__tests__/useRequest-test.browser.tsx index 0b0029f46..323964e60 100644 --- a/packages/react/src/__tests__/useRequest-test.browser.tsx +++ b/packages/react/src/__tests__/useRequest-test.browser.tsx @@ -1,4 +1,4 @@ -import { createReactiveActionStore, ReactiveActionSource } from '@solana/subscribable'; +import { createReactiveActionStore, ReactiveActionSource } from '@solana/kit'; import { act } from '@testing-library/react'; import React from 'react'; import { renderToString } from 'react-dom/server'; diff --git a/packages/react/src/__tests__/useSubscription-test.browser.tsx b/packages/react/src/__tests__/useSubscription-test.browser.tsx index de76fdacc..08544f4a8 100644 --- a/packages/react/src/__tests__/useSubscription-test.browser.tsx +++ b/packages/react/src/__tests__/useSubscription-test.browser.tsx @@ -1,5 +1,9 @@ -import { SolanaRpcResponse } from '@solana/rpc-types'; -import { createReactiveStoreFromDataPublisherFactory, DataPublisher, ReactiveStreamSource } from '@solana/subscribable'; +import { + createReactiveStoreFromDataPublisherFactory, + DataPublisher, + ReactiveStreamSource, + SolanaRpcResponse, +} from '@solana/kit'; import { act } from '@testing-library/react'; import React from 'react'; import { renderToString } from 'react-dom/server'; diff --git a/packages/react/src/__tests__/useWalletAccountMessageSigner-test.ts b/packages/react/src/__tests__/useWalletAccountMessageSigner-test.ts index cc746324e..1f5ff21e1 100644 --- a/packages/react/src/__tests__/useWalletAccountMessageSigner-test.ts +++ b/packages/react/src/__tests__/useWalletAccountMessageSigner-test.ts @@ -1,5 +1,4 @@ -import { SOLANA_ERROR__SIGNER__WALLET_MULTISIGN_UNIMPLEMENTED, SolanaError } from '@solana/errors'; -import { SignatureBytes } from '@solana/keys'; +import { SignatureBytes, SOLANA_ERROR__SIGNER__WALLET_MULTISIGN_UNIMPLEMENTED, SolanaError } from '@solana/kit'; import type { UiWalletAccount } from '@wallet-standard/ui'; import { renderHook } from '../test-renderer'; diff --git a/packages/react/src/__tests__/useWalletAccountTransactionSendingSigner-test.ts b/packages/react/src/__tests__/useWalletAccountTransactionSendingSigner-test.ts index 6c7400b12..9d9bf94d9 100644 --- a/packages/react/src/__tests__/useWalletAccountTransactionSendingSigner-test.ts +++ b/packages/react/src/__tests__/useWalletAccountTransactionSendingSigner-test.ts @@ -1,16 +1,23 @@ -import { Address } from '@solana/addresses'; -import type { VariableSizeEncoder } from '@solana/codecs-core'; -import { SOLANA_ERROR__SIGNER__WALLET_MULTISIGN_UNIMPLEMENTED, SolanaError } from '@solana/errors'; -import { SignatureBytes } from '@solana/keys'; -import { Transaction, TransactionMessageBytes } from '@solana/transactions'; -import { getTransactionEncoder } from '@solana/transactions'; +import { + Address, + getTransactionEncoder, + SignatureBytes, + SOLANA_ERROR__SIGNER__WALLET_MULTISIGN_UNIMPLEMENTED, + SolanaError, + Transaction, + TransactionMessageBytes, + type VariableSizeEncoder, +} from '@solana/kit'; import type { UiWalletAccount } from '@wallet-standard/ui'; import { renderHook } from '../test-renderer'; import { useSignAndSendTransaction } from '../useSignAndSendTransaction'; import { useWalletAccountTransactionSendingSigner } from '../useWalletAccountTransactionSendingSigner'; -jest.mock('@solana/transactions'); +jest.mock('@solana/kit', () => ({ + ...jest.requireActual('@solana/kit'), + getTransactionEncoder: jest.fn(), +})); jest.mock('../useSignAndSendTransaction'); describe('useWalletAccountTransactionSendingSigner', () => { diff --git a/packages/react/src/__tests__/useWalletAccountTransactionSigner-test.ts b/packages/react/src/__tests__/useWalletAccountTransactionSigner-test.ts index b6d63d305..bb8a85910 100644 --- a/packages/react/src/__tests__/useWalletAccountTransactionSigner-test.ts +++ b/packages/react/src/__tests__/useWalletAccountTransactionSigner-test.ts @@ -1,31 +1,33 @@ -import { Address } from '@solana/addresses'; -import type { VariableSizeCodec, VariableSizeDecoder } from '@solana/codecs-core'; -import { - SOLANA_ERROR__SIGNER__WALLET_MULTISIGN_UNIMPLEMENTED, - SOLANA_ERROR__TRANSACTION__NONCE_ACCOUNT_CANNOT_BE_IN_LOOKUP_TABLE, - SolanaError, -} from '@solana/errors'; -import { SignatureBytes } from '@solana/keys'; -import { Blockhash } from '@solana/rpc-types'; import { + Address, + Blockhash, CompiledTransactionMessage, CompiledTransactionMessageWithLifetime, getCompiledTransactionMessageDecoder, -} from '@solana/transaction-messages'; -import { + getTransactionCodec, getTransactionLifetimeConstraintFromCompiledTransactionMessage, + SignatureBytes, + SOLANA_ERROR__SIGNER__WALLET_MULTISIGN_UNIMPLEMENTED, + SOLANA_ERROR__TRANSACTION__NONCE_ACCOUNT_CANNOT_BE_IN_LOOKUP_TABLE, + SolanaError, Transaction, TransactionMessageBytes, -} from '@solana/transactions'; -import { getTransactionCodec } from '@solana/transactions'; + type VariableSizeCodec, + type VariableSizeDecoder, +} from '@solana/kit'; import type { UiWalletAccount } from '@wallet-standard/ui'; import { renderHook } from '../test-renderer'; import { useSignTransaction } from '../useSignTransaction'; import { useWalletAccountTransactionSigner } from '../useWalletAccountTransactionSigner'; -jest.mock('@solana/transaction-messages'); -jest.mock('@solana/transactions'); +jest.mock('@solana/kit', () => ({ + ...jest.requireActual('@solana/kit'), + assertIsTransactionWithinSizeLimit: jest.fn(), + getCompiledTransactionMessageDecoder: jest.fn(), + getTransactionCodec: jest.fn(), + getTransactionLifetimeConstraintFromCompiledTransactionMessage: jest.fn(), +})); jest.mock('../useSignTransaction'); describe('useWalletAccountTransactionSigner', () => { diff --git a/packages/react/src/__typetests__/useClient-typetest.ts b/packages/react/src/__typetests__/useClient-typetest.ts index cc941e7f3..1aab3fec9 100644 --- a/packages/react/src/__typetests__/useClient-typetest.ts +++ b/packages/react/src/__typetests__/useClient-typetest.ts @@ -1,6 +1,6 @@ /* eslint-disable react-hooks/rules-of-hooks */ -import type { Client } from '@solana/plugin-core'; +import type { Client } from '@solana/kit'; import { useClient } from '../useClient'; diff --git a/packages/react/src/__typetests__/useClientCapability-typetest.ts b/packages/react/src/__typetests__/useClientCapability-typetest.ts index 0935332f3..98d8f6b2b 100644 --- a/packages/react/src/__typetests__/useClientCapability-typetest.ts +++ b/packages/react/src/__typetests__/useClientCapability-typetest.ts @@ -1,6 +1,6 @@ /* eslint-disable react-hooks/rules-of-hooks */ -import type { Client } from '@solana/plugin-core'; +import type { Client } from '@solana/kit'; import { useClientCapability } from '../useClientCapability'; diff --git a/packages/react/src/__typetests__/useRequest-typetest.ts b/packages/react/src/__typetests__/useRequest-typetest.ts index 40b081e86..0481eb923 100644 --- a/packages/react/src/__typetests__/useRequest-typetest.ts +++ b/packages/react/src/__typetests__/useRequest-typetest.ts @@ -1,6 +1,6 @@ /* eslint-disable react-hooks/rules-of-hooks */ -import { ReactiveActionSource } from '@solana/subscribable'; +import { ReactiveActionSource } from '@solana/kit'; import { RequestResult, useRequest } from '../useRequest'; diff --git a/packages/react/src/__typetests__/useSignAndSendTransaction-typetest.ts b/packages/react/src/__typetests__/useSignAndSendTransaction-typetest.ts index 0ad64d3f7..c5ca5f9c6 100644 --- a/packages/react/src/__typetests__/useSignAndSendTransaction-typetest.ts +++ b/packages/react/src/__typetests__/useSignAndSendTransaction-typetest.ts @@ -1,6 +1,6 @@ /* eslint-disable react-hooks/rules-of-hooks */ -import { address } from '@solana/addresses'; +import { address } from '@solana/kit'; import { UiWalletAccount } from '@wallet-standard/ui'; import { useSignAndSendTransaction, useSignAndSendTransactions } from '../useSignAndSendTransaction'; diff --git a/packages/react/src/__typetests__/useSignIn-typetest.ts b/packages/react/src/__typetests__/useSignIn-typetest.ts index 03078ed03..7a7421866 100644 --- a/packages/react/src/__typetests__/useSignIn-typetest.ts +++ b/packages/react/src/__typetests__/useSignIn-typetest.ts @@ -1,7 +1,7 @@ /* eslint-disable @typescript-eslint/no-floating-promises */ /* eslint-disable react-hooks/rules-of-hooks */ -import { address } from '@solana/addresses'; +import { address } from '@solana/kit'; import { WalletVersion } from '@wallet-standard/base'; import { UiWalletAccount } from '@wallet-standard/ui'; diff --git a/packages/react/src/__typetests__/useSignTransaction-typetest.ts b/packages/react/src/__typetests__/useSignTransaction-typetest.ts index c115a009c..aac6385e0 100644 --- a/packages/react/src/__typetests__/useSignTransaction-typetest.ts +++ b/packages/react/src/__typetests__/useSignTransaction-typetest.ts @@ -1,6 +1,6 @@ /* eslint-disable react-hooks/rules-of-hooks */ -import { address } from '@solana/addresses'; +import { address } from '@solana/kit'; import { UiWalletAccount } from '@wallet-standard/ui'; import { useSignTransaction, useSignTransactions } from '../useSignTransaction'; diff --git a/packages/react/src/__typetests__/useSubscription-typetest.ts b/packages/react/src/__typetests__/useSubscription-typetest.ts index e0e67fbe7..29926371e 100644 --- a/packages/react/src/__typetests__/useSubscription-typetest.ts +++ b/packages/react/src/__typetests__/useSubscription-typetest.ts @@ -1,7 +1,6 @@ /* eslint-disable react-hooks/rules-of-hooks */ -import { SolanaRpcResponse } from '@solana/rpc-types'; -import { ReactiveStreamSource } from '@solana/subscribable'; +import { ReactiveStreamSource, SolanaRpcResponse } from '@solana/kit'; import { SubscriptionResult, useSubscription } from '../useSubscription'; diff --git a/packages/react/src/staticStores.ts b/packages/react/src/staticStores.ts index 23a4ae208..475d658a0 100644 --- a/packages/react/src/staticStores.ts +++ b/packages/react/src/staticStores.ts @@ -1,4 +1,4 @@ -import { ReactiveActionStore, ReactiveState, ReactiveStreamStore } from '@solana/subscribable'; +import { ReactiveActionStore, ReactiveState, ReactiveStreamStore } from '@solana/kit'; const DISABLED_ACTION_STATE = Object.freeze({ data: undefined, diff --git a/packages/react/src/useAction.ts b/packages/react/src/useAction.ts index 48d99b248..a46356f05 100644 --- a/packages/react/src/useAction.ts +++ b/packages/react/src/useAction.ts @@ -1,4 +1,4 @@ -import { createReactiveActionStore } from '@solana/subscribable'; +import { createReactiveActionStore } from '@solana/kit'; import { useEffect, useMemo, useRef, useState, useSyncExternalStore } from 'react'; import { useIsomorphicLayoutEffect } from './useIsomorphicLayoutEffect'; diff --git a/packages/react/src/useClient.ts b/packages/react/src/useClient.ts index dd3785788..be4328a8f 100644 --- a/packages/react/src/useClient.ts +++ b/packages/react/src/useClient.ts @@ -1,5 +1,4 @@ -import { SOLANA_ERROR__REACT__MISSING_PROVIDER, SolanaError } from '@solana/errors'; -import type { Client } from '@solana/plugin-core'; +import { type Client, SOLANA_ERROR__REACT__MISSING_PROVIDER, SolanaError } from '@solana/kit'; import React from 'react'; import { ClientContext } from './ClientProvider'; diff --git a/packages/react/src/useClientCapability.ts b/packages/react/src/useClientCapability.ts index 43ab14ddf..4fca02a3b 100644 --- a/packages/react/src/useClientCapability.ts +++ b/packages/react/src/useClientCapability.ts @@ -1,5 +1,4 @@ -import { SOLANA_ERROR__REACT__MISSING_CAPABILITY, SolanaError } from '@solana/errors'; -import type { Client } from '@solana/plugin-core'; +import { type Client, SOLANA_ERROR__REACT__MISSING_CAPABILITY, SolanaError } from '@solana/kit'; import { useClient } from './useClient'; diff --git a/packages/react/src/useRequest.ts b/packages/react/src/useRequest.ts index 0bb0d9ebe..fe5fc3578 100644 --- a/packages/react/src/useRequest.ts +++ b/packages/react/src/useRequest.ts @@ -1,4 +1,4 @@ -import { createReactiveActionStore, ReactiveActionSource } from '@solana/subscribable'; +import { createReactiveActionStore, ReactiveActionSource } from '@solana/kit'; import { useCallback, useEffect, useMemo, useRef } from 'react'; import { disabledActionStore } from './staticStores'; diff --git a/packages/react/src/useRequestResult.ts b/packages/react/src/useRequestResult.ts index f0ce7d7f6..25b2d5bb3 100644 --- a/packages/react/src/useRequestResult.ts +++ b/packages/react/src/useRequestResult.ts @@ -1,4 +1,4 @@ -import { ReactiveActionStore } from '@solana/subscribable'; +import { ReactiveActionStore } from '@solana/kit'; import { useMemo, useSyncExternalStore } from 'react'; import { RequestResult } from './useRequest'; diff --git a/packages/react/src/useSignIn.ts b/packages/react/src/useSignIn.ts index 5a4e86abe..f02ac47d0 100644 --- a/packages/react/src/useSignIn.ts +++ b/packages/react/src/useSignIn.ts @@ -1,4 +1,4 @@ -import { Address } from '@solana/addresses'; +import { Address } from '@solana/kit'; import { SolanaSignIn, SolanaSignInFeature, diff --git a/packages/react/src/useSubscription.ts b/packages/react/src/useSubscription.ts index 7b999dab7..c40723a7c 100644 --- a/packages/react/src/useSubscription.ts +++ b/packages/react/src/useSubscription.ts @@ -1,4 +1,4 @@ -import { ReactiveStreamSource } from '@solana/subscribable'; +import { ReactiveStreamSource } from '@solana/kit'; import { useCallback, useEffect, useMemo, useRef } from 'react'; import { disabledStreamStore } from './staticStores'; diff --git a/packages/react/src/useSubscriptionResult.ts b/packages/react/src/useSubscriptionResult.ts index 15180e52f..7d18714f6 100644 --- a/packages/react/src/useSubscriptionResult.ts +++ b/packages/react/src/useSubscriptionResult.ts @@ -1,4 +1,4 @@ -import { ReactiveStreamStore } from '@solana/subscribable'; +import { ReactiveStreamStore } from '@solana/kit'; import { useMemo, useSyncExternalStore } from 'react'; import { SubscriptionResult } from './useSubscription'; diff --git a/packages/react/src/useWalletAccountMessageSigner.ts b/packages/react/src/useWalletAccountMessageSigner.ts index d4b5b0eca..e5d368a8c 100644 --- a/packages/react/src/useWalletAccountMessageSigner.ts +++ b/packages/react/src/useWalletAccountMessageSigner.ts @@ -1,9 +1,14 @@ -import { Address, address } from '@solana/addresses'; -import { bytesEqual } from '@solana/codecs-core'; -import { SOLANA_ERROR__SIGNER__WALLET_MULTISIGN_UNIMPLEMENTED, SolanaError } from '@solana/errors'; -import { SignatureBytes } from '@solana/keys'; +import { + Address, + address, + bytesEqual, + MessageModifyingSigner, + SignableMessage, + SignatureBytes, + SOLANA_ERROR__SIGNER__WALLET_MULTISIGN_UNIMPLEMENTED, + SolanaError, +} from '@solana/kit'; import { getAbortablePromise } from '@solana/promises'; -import { MessageModifyingSigner, SignableMessage } from '@solana/signers'; import type { UiWalletAccount } from '@wallet-standard/ui'; import { useMemo } from 'react'; @@ -21,7 +26,7 @@ import { useSignMessage } from './useSignMessage'; * @example * ```tsx * import { useWalletAccountMessageSigner } from '@solana/react'; - * import { createSignableMessage } from '@solana/signers'; + * import { createSignableMessage } from '@solana/kit'; * * function SignMessageButton({ account, text }) { * const messageSigner = useWalletAccountMessageSigner(account); diff --git a/packages/react/src/useWalletAccountTransactionSendingSigner.ts b/packages/react/src/useWalletAccountTransactionSendingSigner.ts index 57c6eacba..a60a9569b 100644 --- a/packages/react/src/useWalletAccountTransactionSendingSigner.ts +++ b/packages/react/src/useWalletAccountTransactionSendingSigner.ts @@ -1,9 +1,12 @@ -import { address } from '@solana/addresses'; -import { SOLANA_ERROR__SIGNER__WALLET_MULTISIGN_UNIMPLEMENTED, SolanaError } from '@solana/errors'; -import { SignatureBytes } from '@solana/keys'; +import { + address, + getTransactionEncoder, + SignatureBytes, + SOLANA_ERROR__SIGNER__WALLET_MULTISIGN_UNIMPLEMENTED, + SolanaError, + TransactionSendingSigner, +} from '@solana/kit'; import { getAbortablePromise } from '@solana/promises'; -import { TransactionSendingSigner } from '@solana/signers'; -import { getTransactionEncoder } from '@solana/transactions'; import { UiWalletAccount } from '@wallet-standard/ui'; import { useMemo, useRef } from 'react'; diff --git a/packages/react/src/useWalletAccountTransactionSigner.ts b/packages/react/src/useWalletAccountTransactionSigner.ts index fcdd55648..eded3586a 100644 --- a/packages/react/src/useWalletAccountTransactionSigner.ts +++ b/packages/react/src/useWalletAccountTransactionSigner.ts @@ -1,17 +1,18 @@ -import { address } from '@solana/addresses'; -import { bytesEqual } from '@solana/codecs-core'; -import { SOLANA_ERROR__SIGNER__WALLET_MULTISIGN_UNIMPLEMENTED, SolanaError } from '@solana/errors'; -import { getAbortablePromise } from '@solana/promises'; -import { TransactionModifyingSigner } from '@solana/signers'; -import { getCompiledTransactionMessageDecoder } from '@solana/transaction-messages'; import { + address, assertIsTransactionWithinSizeLimit, + bytesEqual, + getCompiledTransactionMessageDecoder, getTransactionCodec, getTransactionLifetimeConstraintFromCompiledTransactionMessage, + SOLANA_ERROR__SIGNER__WALLET_MULTISIGN_UNIMPLEMENTED, + SolanaError, Transaction, + TransactionModifyingSigner, TransactionWithinSizeLimit, TransactionWithLifetime, -} from '@solana/transactions'; +} from '@solana/kit'; +import { getAbortablePromise } from '@solana/promises'; import { UiWalletAccount } from '@wallet-standard/ui'; import { useMemo, useRef } from 'react'; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index fb6eccca3..ebe4a8413 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -944,33 +944,9 @@ importers: packages/react: dependencies: - '@solana/addresses': - specifier: workspace:* - version: link:../addresses - '@solana/errors': - specifier: workspace:* - version: link:../errors - '@solana/keys': - specifier: workspace:* - version: link:../keys - '@solana/plugin-core': - specifier: workspace:* - version: link:../plugin-core '@solana/promises': specifier: workspace:* version: link:../promises - '@solana/signers': - specifier: workspace:* - version: link:../signers - '@solana/subscribable': - specifier: workspace:* - version: link:../subscribable - '@solana/transaction-messages': - specifier: workspace:* - version: link:../transaction-messages - '@solana/transactions': - specifier: workspace:* - version: link:../transactions '@solana/wallet-standard-features': specifier: ^1.3.0 version: 1.3.0 @@ -990,15 +966,12 @@ importers: specifier: ^1.0.1 version: 1.0.1 devDependencies: - '@solana/codecs-core': - specifier: workspace:* - version: link:../codecs-core '@solana/eslint-config': specifier: workspace:* version: link:../eslint-config - '@solana/rpc-types': + '@solana/kit': specifier: workspace:* - version: link:../rpc-types + version: link:../kit '@testing-library/react': specifier: ^16.3.2 version: 16.3.2(@testing-library/dom@10.4.1)(@types/react-dom@19.2.3(@types/react@19.2.15))(@types/react@19.2.15)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)