Skip to content

Commit

Permalink
fix: Refactor and fix readonly provider (#444)
Browse files Browse the repository at this point in the history
* fix: Refactor and fix readonly provider

* Remove extra console.log
  • Loading branch information
michaelhly committed Jan 5, 2022
1 parent 9c53b6e commit de4c6ce
Show file tree
Hide file tree
Showing 4 changed files with 53 additions and 58 deletions.
1 change: 0 additions & 1 deletion packages/use-solana/src/adapters/index.tsx
@@ -1,4 +1,3 @@
export * from "./ledger";
export * from "./readonly";
export * from "./solana";
export * from "./types";
51 changes: 0 additions & 51 deletions packages/use-solana/src/adapters/readonly.tsx

This file was deleted.

50 changes: 50 additions & 0 deletions packages/use-solana/src/adapters/readonly/index.tsx
@@ -0,0 +1,50 @@
import type { Transaction } from "@solana/web3.js";
import { PublicKey } from "@solana/web3.js";
import { EventEmitter } from "eventemitter3";

import type { WalletAdapter } from "../types";

export class ReadonlyAdapter extends EventEmitter implements WalletAdapter {
private _publicKey: PublicKey | null = null;

constructor() {
super();

const localPubkey =
process.env.REACT_APP_LOCAL_PUBKEY ?? process.env.LOCAL_PUBKEY;
if (!localPubkey) {
console.warn("LOCAL_PUBKEY not set for readonly provider");
} else {
this._publicKey = new PublicKey(localPubkey);
}
}

get connected(): boolean {
return true;
}

get autoApprove(): boolean {
return false;
}

get publicKey(): PublicKey | null {
return this._publicKey;
}

signAllTransactions(_transactions: Transaction[]): Promise<Transaction[]> {
throw new Error("readonly adapter cannot sign transactions");
}

signTransaction(_transaction: Transaction): Promise<Transaction> {
throw new Error("readonly adapter cannot sign transactions");
}

connect = (): Promise<void> => {
this.emit("connect", this._publicKey);
return Promise.resolve();
};

disconnect(): void {
this.emit("disconnect");
}
}
9 changes: 3 additions & 6 deletions packages/use-solana/src/providers.tsx
Expand Up @@ -9,11 +9,8 @@ import { SolongWalletAdapter } from "@solana/wallet-adapter-solong";
import type React from "react";

import type { WalletAdapterBuilder } from "./adapters";
import {
LedgerWalletAdapter,
ReadonlyAdapter,
SolanaWalletAdapter,
} from "./adapters";
import { LedgerWalletAdapter, SolanaWalletAdapter } from "./adapters";
import { ReadonlyAdapter } from "./adapters/readonly";
import { SecretKeyAdapter } from "./adapters/secret-key";
import { SolflareAdapter } from "./adapters/solflare";
import {
Expand Down Expand Up @@ -156,7 +153,7 @@ export const DEFAULT_WALLET_PROVIDERS: WalletProviderMap<
icon: "https://upload.wikimedia.org/wikipedia/commons/5/55/Magnifying_glass_icon.svg",
makeAdapter: () => new ReadonlyAdapter(),
isInstalled: () =>
!!process.env.LOCAL_PUBKEY || !!process.env.REACT_APP_PUBKEY,
!!process.env.LOCAL_PUBKEY || !!process.env.REACT_APP_LOCAL_PUBKEY,
},
};

Expand Down

0 comments on commit de4c6ce

Please sign in to comment.