Преглед на файлове

Merge pull request #237 from solana-labs/fix-sollet-ready-state

Fix Sollet ready state
Jordan Sexton преди 3 години
родител
ревизия
da0e7c6c7e
променени са 4 файла, в които са добавени 500 реда и са изтрити 491 реда
  1. 1 1
      packages/wallets/sollet/package.json
  2. 4 2
      packages/wallets/sollet/src/adapter.ts
  3. 12 6
      packages/wallets/sollet/src/base.ts
  4. 483 482
      yarn.lock

+ 1 - 1
packages/wallets/sollet/package.json

@@ -1,6 +1,6 @@
 {
     "name": "@solana/wallet-adapter-sollet",
-    "version": "0.10.0",
+    "version": "0.10.1",
     "author": "Solana Maintainers <maintainers@solana.foundation>",
     "repository": "https://github.com/solana-labs/wallet-adapter",
     "license": "Apache-2.0",

Файловите разлики са ограничени, защото са твърде много
+ 4 - 2
packages/wallets/sollet/src/adapter.ts


+ 12 - 6
packages/wallets/sollet/src/base.ts

@@ -34,24 +34,29 @@ declare const window: SolletWindow;
 export interface SolletWalletAdapterConfig {
     provider?: string | SolletWallet;
     network?: WalletAdapterNetwork;
+    timeout?: number;
 }
 
 export abstract class BaseSolletWalletAdapter extends BaseMessageSignerWalletAdapter {
     protected _provider: string | SolletWallet | undefined;
     protected _network: WalletAdapterNetwork;
-    protected _connecting: boolean;
+    protected _timeout: number;
     protected _readyState: WalletReadyState =
         typeof window === 'undefined' || typeof document === 'undefined'
             ? WalletReadyState.Unsupported
             : WalletReadyState.NotDetected;
+    protected _connecting: boolean;
     protected _wallet: Wallet | null;
 
-    constructor(config: SolletWalletAdapterConfig = {}) {
+    constructor({ provider, network = WalletAdapterNetwork.Mainnet, timeout = 10000 }: SolletWalletAdapterConfig = {}) {
         super();
-        this._provider = config.provider;
-        this._network = config.network || WalletAdapterNetwork.Mainnet;
+
+        this._provider = provider;
+        this._network = network;
+        this._timeout = timeout;
         this._connecting = false;
         this._wallet = null;
+
         if (this._readyState !== WalletReadyState.Unsupported) {
             if (typeof this._provider === 'string') {
                 this._readyState = WalletReadyState.Loadable;
@@ -87,7 +92,8 @@ export abstract class BaseSolletWalletAdapter extends BaseMessageSignerWalletAda
     async connect(): Promise<void> {
         try {
             if (this.connected || this.connecting) return;
-            if (this._readyState !== WalletReadyState.Installed) throw new WalletNotReadyError();
+            if (!(this._readyState === WalletReadyState.Loadable || this._readyState === WalletReadyState.Installed))
+                throw new WalletNotReadyError();
 
             this._connecting = true;
 
@@ -148,7 +154,7 @@ export abstract class BaseSolletWalletAdapter extends BaseMessageSignerWalletAda
                             }, 100);
                         } else {
                             // HACK: sol-wallet-adapter doesn't reject or emit an event if the extension is closed or ignored
-                            timeout = setTimeout(() => reject(new WalletTimeoutError()), 10000);
+                            timeout = setTimeout(() => reject(new WalletTimeoutError()), this._timeout);
                         }
                     });
                 } finally {

Файловите разлики са ограничени, защото са твърде много
+ 483 - 482
yarn.lock


Някои файлове не бяха показани, защото твърде много файлове са промени