diff --git a/packages/use-solana/package.json b/packages/use-solana/package.json index 659ee539b..dce274885 100644 --- a/packages/use-solana/package.json +++ b/packages/use-solana/package.json @@ -34,6 +34,7 @@ "@saberhq/solana-contrib": "workspace:^", "@saberhq/wallet-adapter-icons": "workspace:^", "@solana/wallet-adapter-base": "^0.9.6", + "@solana/wallet-adapter-brave": "0.1.4", "@solana/wallet-adapter-clover": "^0.4.5", "@solana/wallet-adapter-coin98": "^0.5.5", "@solana/wallet-adapter-exodus": "^0.1.1", diff --git a/packages/use-solana/src/providers.ts b/packages/use-solana/src/providers.ts index c34c0b2f6..10215f0c7 100644 --- a/packages/use-solana/src/providers.ts +++ b/packages/use-solana/src/providers.ts @@ -1,4 +1,5 @@ import { + BRAVEWALLET, CLOVER, COIN98, EXODUS, @@ -14,6 +15,7 @@ import { SOLLET, } from "@saberhq/wallet-adapter-icons"; import type { WalletAdapterNetwork } from "@solana/wallet-adapter-base"; +import { BraveWalletAdapter } from "@solana/wallet-adapter-brave"; import { CloverWalletAdapter } from "@solana/wallet-adapter-clover"; import { Coin98WalletAdapter } from "@solana/wallet-adapter-coin98"; import { ExodusWalletAdapter } from "@solana/wallet-adapter-exodus"; @@ -28,7 +30,7 @@ import { SolletWalletAdapter, } from "@solana/wallet-adapter-sollet"; import { SolongWalletAdapter } from "@solana/wallet-adapter-solong"; -import type React from "react"; +import type * as React from "react"; import type { WalletAdapterBuilder } from "./adapters"; import { LedgerWalletAdapter, SolanaWalletAdapter } from "./adapters"; @@ -37,6 +39,7 @@ import { SecretKeyAdapter } from "./adapters/secret-key"; import { SolflareAdapter } from "./adapters/solflare"; export enum DefaultWalletType { + BraveWallet = "BraveWallet", Clover = "Clover", Coin98 = "Coin98", Exodus = "Exodus", @@ -91,6 +94,14 @@ export const DEFAULT_WALLET_PROVIDERS: WalletProviderMap< isInstalled: () => window.sollet !== undefined, }, + [DefaultWalletType.BraveWallet]: { + name: "Brave Wallet", + url: "https://www.brave.com/wallet", + icon: BRAVEWALLET, + makeAdapter: () => new SolanaWalletAdapter(new BraveWalletAdapter()), + isInstalled: () => window.braveSolana?.isBraveWallet === true, + isMobile: true, + }, [DefaultWalletType.Ledger]: { name: "Ledger", url: "https://www.ledger.com", diff --git a/packages/use-solana/src/typings/window.d.ts b/packages/use-solana/src/typings/window.d.ts index 3473a171f..561d92946 100644 --- a/packages/use-solana/src/typings/window.d.ts +++ b/packages/use-solana/src/typings/window.d.ts @@ -146,5 +146,8 @@ declare global { huobiWallet?: { isHuobiWallet?: boolean; }; + braveSolana?: { + isBraveWallet?: boolean; + }; } } diff --git a/packages/wallet-adapter-icons/src/bravewallet.tsx b/packages/wallet-adapter-icons/src/bravewallet.tsx new file mode 100644 index 000000000..5d9948113 --- /dev/null +++ b/packages/wallet-adapter-icons/src/bravewallet.tsx @@ -0,0 +1,74 @@ +import * as React from "react"; + +export const BRAVEWALLET: React.FC> = (props) => ( + + + + + + + + + + + + + + + + + + + + + + +); diff --git a/packages/wallet-adapter-icons/src/index.tsx b/packages/wallet-adapter-icons/src/index.tsx index 12565c698..0a0bf7060 100644 --- a/packages/wallet-adapter-icons/src/index.tsx +++ b/packages/wallet-adapter-icons/src/index.tsx @@ -5,6 +5,7 @@ import React from "react"; +export * from "./bravewallet.js"; export * from "./coin98.js"; export * from "./mathwallet.js"; diff --git a/yarn.lock b/yarn.lock index 6d441c909..59a046062 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2477,6 +2477,7 @@ __metadata: "@saberhq/tsconfig": ^1.13.32 "@saberhq/wallet-adapter-icons": "workspace:^" "@solana/wallet-adapter-base": ^0.9.6 + "@solana/wallet-adapter-brave": 0.1.4 "@solana/wallet-adapter-clover": ^0.4.5 "@solana/wallet-adapter-coin98": ^0.5.5 "@solana/wallet-adapter-exodus": ^0.1.1 @@ -2634,6 +2635,28 @@ __metadata: languageName: node linkType: hard +"@solana/wallet-adapter-base@npm:^0.9.9": + version: 0.9.9 + resolution: "@solana/wallet-adapter-base@npm:0.9.9" + dependencies: + eventemitter3: ^4.0.0 + peerDependencies: + "@solana/web3.js": ^1.44.3 + checksum: 3e69b0bf7e5dbc2447db65096904e1d5f7f8ba2ef3eca1b5018f6c7b48c744229870f0bb2096249078ee33a3de63c575e665502bb09e532221dbd732fa095654 + languageName: node + linkType: hard + +"@solana/wallet-adapter-brave@npm:0.1.4": + version: 0.1.4 + resolution: "@solana/wallet-adapter-brave@npm:0.1.4" + dependencies: + "@solana/wallet-adapter-base": ^0.9.9 + peerDependencies: + "@solana/web3.js": ^1.36.0 + checksum: d8b8fcf8b8ecbb4e100c8f7af97392bdb9e0fbcf4a720fb7f1743e5b89c5088b99af6db8a59dfdcda0024f6791509361e0e3259aecfc6d8dbf13a6d0dd32c845 + languageName: node + linkType: hard + "@solana/wallet-adapter-clover@npm:^0.4.5": version: 0.4.5 resolution: "@solana/wallet-adapter-clover@npm:0.4.5"