Procházet zdrojové kódy

resolve circular dependency

Jordan Sexton před 2 roky
rodič
revize
81c8e6418e

+ 3 - 1
packages/core/base/package.json

@@ -35,7 +35,9 @@
         "@solana/web3.js": "^1.58.0"
     },
     "dependencies": {
-        "@solana/wallet-standard-wallet-adapter-base": "^1.0.0",
+        "@solana/wallet-standard-features": "^1.0.0",
+        "@wallet-standard/base": "^1.0.1",
+        "@wallet-standard/features": "^1.0.1",
         "eventemitter3": "^4.0.0"
     },
     "devDependencies": {

+ 1 - 0
packages/core/base/src/index.ts

@@ -1,4 +1,5 @@
 export * from './adapter.js';
 export * from './errors.js';
 export * from './signer.js';
+export * from './standard.js';
 export * from './types.js';

+ 20 - 0
packages/core/base/src/standard.ts

@@ -0,0 +1,20 @@
+import type {
+    SolanaSignAndSendTransactionFeature,
+    SolanaSignMessageFeature,
+    SolanaSignTransactionFeature,
+} from '@solana/wallet-standard-features';
+import type { WalletWithFeatures } from '@wallet-standard/base';
+import type { ConnectFeature, DisconnectFeature, EventsFeature } from '@wallet-standard/features';
+import type { WalletAdapter } from './adapter.js';
+
+export type WalletAdapterCompatibleStandardWallet = WalletWithFeatures<
+    ConnectFeature &
+        EventsFeature &
+        (SolanaSignAndSendTransactionFeature | SolanaSignTransactionFeature) &
+        (DisconnectFeature | SolanaSignMessageFeature | never)
+>;
+
+export type StandardWalletAdapter = WalletAdapter & {
+    wallet: WalletAdapterCompatibleStandardWallet;
+    standard: true;
+};

+ 2 - 2
packages/core/base/src/types.ts

@@ -1,9 +1,9 @@
-import type { StandardAdapter } from '@solana/wallet-standard-wallet-adapter-base';
 import type { Transaction, TransactionVersion, VersionedTransaction } from '@solana/web3.js';
 import type { WalletAdapter } from './adapter.js';
 import type { MessageSignerWalletAdapter, SignerWalletAdapter } from './signer.js';
+import type { StandardWalletAdapter } from './standard.js';
 
-export type Adapter = WalletAdapter | SignerWalletAdapter | MessageSignerWalletAdapter | StandardAdapter;
+export type Adapter = WalletAdapter | SignerWalletAdapter | MessageSignerWalletAdapter | StandardWalletAdapter;
 
 export enum WalletAdapterNetwork {
     Mainnet = 'mainnet-beta',