From 0ec9fbe80de27f0a35527187bc40641fc795d174 Mon Sep 17 00:00:00 2001
From: HoangVD2 <102846781+HoangVD2@users.noreply.github.com>
Date: Tue, 12 Mar 2024 22:18:39 +0700
Subject: [PATCH] Revert "docs: create content for Libraries Integration (#9)"
This reverts commit 103c55dee292ffe27cb39253acc8ebecf9f54cc3.
---
.vitepress/config.ts | 10 +-
developers/blocknative-xdefi-integration.md | 27 --
developers/cosmoskit-xdefi-integration.md | 43 ---
developers/introduction.md | 6 +-
developers/libraries-integration.md | 10 -
developers/rainbowkit-xdefi-integration.md | 122 -------
.../solana-adapter-xdefi-integration.md | 344 ------------------
7 files changed, 8 insertions(+), 554 deletions(-)
delete mode 100644 developers/cosmoskit-xdefi-integration.md
delete mode 100644 developers/libraries-integration.md
delete mode 100644 developers/rainbowkit-xdefi-integration.md
delete mode 100644 developers/solana-adapter-xdefi-integration.md
diff --git a/.vitepress/config.ts b/.vitepress/config.ts
index 7aa2fe90f..ea001f0b0 100644
--- a/.vitepress/config.ts
+++ b/.vitepress/config.ts
@@ -422,7 +422,7 @@ function sidebarHome() {
collapsed: true,
items: [
{
- text: "XDEFI Wallet Integration",
+ text: "XDEFI Wallet integration",
link: "/developers/xdefi-wallet-integration",
collapsed: true,
items: [
@@ -499,7 +499,7 @@ function sidebarHome() {
],
},
{
- text: "Blockchains Integration",
+ text: "Blockhains Integration",
link: "/developers/blockchains-integration",
collapsed: true,
items: [
@@ -566,7 +566,7 @@ function sidebarHome() {
],
},
{
- text: "Libraries Integration",
+ text: "Libraries integration",
link: "/developers/libraries-integration",
collapsed: true,
items: [
@@ -576,11 +576,11 @@ function sidebarHome() {
link: "/developers/blocknative-xdefi-integration",
},
{
- text: "CosmosKit",
+ text: "Cosmos Kit",
link: "/developers/cosmoskit-xdefi-integration",
},
{
- text: "RainbowKit",
+ text: "Rainbowkit",
link: "/developers/rainbowkit-xdefi-integration",
},
{
diff --git a/developers/blocknative-xdefi-integration.md b/developers/blocknative-xdefi-integration.md
index aff3d4c20..ff74bfea2 100644
--- a/developers/blocknative-xdefi-integration.md
+++ b/developers/blocknative-xdefi-integration.md
@@ -1,28 +1 @@
# BlockNative XDEFI Integration
-
-First, your app need to install the core Onboard library, the injected wallets module and optionally ethers js to support browser extension and mobile wallets:
-
-```bash
-yarn add @web3-onboard/core @web3-onboard/injected-wallets ethers
-```
-
-Then initialize in your app:
-
-```javascript
-import Onboard from "@web3-onboard/core";
-import xdefiWalletModule from "@web3-onboard/xdefi";
-
-// initialize the module with options
-const xdefiWalletSdk = xdefiWalletModule();
-
-const onboard = Onboard({
- // ... other Onboard options
- wallets: [
- xdefiWalletSdk(),
- //... other wallets
- ],
-});
-
-const connectedWallets = await onboard.connectWallet();
-console.log(connectedWallets);
-```
diff --git a/developers/cosmoskit-xdefi-integration.md b/developers/cosmoskit-xdefi-integration.md
deleted file mode 100644
index a07d6a250..000000000
--- a/developers/cosmoskit-xdefi-integration.md
+++ /dev/null
@@ -1,43 +0,0 @@
-# CosmosKit XDEFI Integration
-
-First, your app need to install 2 packages for the XDEFI:
-
-- `@cosmos-kit/xdefi`
-- `@cosmos-kit/xdefi-extension`
-
-`@cosmos-kit/xdefi` export all available xdefi wallets (currently only extension available), while if you only want to add a particular one, choose `@cosmos-kit/xdefi-extension`
-
-> Note: all these packages export `wallets` and it's an array of `MainWalletBase`
-
-Take `@cosmos-kit/xdefi` for example
-
-### add `@cosmos-kit/xdefi`
-
-```bash
-yarn add @cosmos-kit/xdefi
-```
-
-### import the wallets
-
-```javascript
-import { wallets as xdefi } from "@cosmos-kit/xdefi";
-```
-
-### add to your provider
-
-```javascript
-function MyCosmosApp({ Component, pageProps }: AppProps) {
- return (
-
-
-
- );
-}
-
-export default MyCosmosApp;
-```
diff --git a/developers/introduction.md b/developers/introduction.md
index 466097a56..ba6541860 100644
--- a/developers/introduction.md
+++ b/developers/introduction.md
@@ -53,7 +53,7 @@ XDEFI Wallet is also integrated in a large panel of libraries to make it accessi
You can acces the list from here:
-- [BlockNative](./blocknative-xdefi-integration)
-- [CosmosKit](./cosmoskit-xdefi-integration)
-- [RainbowKit](./rainbowkit-xdefi-integration)
+- [BlockNative](./blocknative-xdefi-integration
+- [Cosmos Kit](./cosmoskit-xdefi-integration)
+- [Rainbowkit](./rainbowkit-xdefi-integration)
- [Solana Adapter](./solana-adapter-xdefi-integration)
diff --git a/developers/libraries-integration.md b/developers/libraries-integration.md
deleted file mode 100644
index 728ba9263..000000000
--- a/developers/libraries-integration.md
+++ /dev/null
@@ -1,10 +0,0 @@
-# Libraries Integration
-
-XDEFI Wallet is also integrated in a large panel of libraries to make it accessible to any developer's needs.
-
-You can access the list from here:
-
-- [BlockNative](./blocknative-xdefi-integration)
-- [CosmosKit](./cosmoskit-xdefi-integration)
-- [RainbowKit](./rainbowkit-xdefi-integration)
-- [Solana Adapter](./solana-adapter-xdefi-integration)
diff --git a/developers/rainbowkit-xdefi-integration.md b/developers/rainbowkit-xdefi-integration.md
deleted file mode 100644
index 15f9fb89a..000000000
--- a/developers/rainbowkit-xdefi-integration.md
+++ /dev/null
@@ -1,122 +0,0 @@
-# RainbowKit XDEFI Integration
-
-You can import individual wallets from `'@rainbow-me/rainbowkit/wallets'` along with the `connectorsForWallets` function to build your own list of wallets with their necessary connectors. This way you have full control over which wallets to display, and in which order.
-
-For example, you can choose to only show Rainbow along with generic fallback wallets.
-
-```javascript
-import { connectorsForWallets } from "@rainbow-me/rainbowkit";
-import {
- rainbowWallet,
- walletConnectWallet,
-} from "@rainbow-me/rainbowkit/wallets";
-
-const connectors = connectorsForWallets(
- [
- {
- groupName: "Recommended",
- wallets: [rainbowWallet, walletConnectWallet],
- },
- ],
- {
- appName: "My RainbowKit App",
- projectId: "YOUR_PROJECT_ID",
- },
-);
-```
-
-You can then pass your connectors to Wagmi's `createConfig`.
-
-```javascript
-import { connectorsForWallets } from '@rainbow-me/rainbowkit';
-import { createConfig } from 'wagmi';
-
-const connectors = connectorsForWallets(/* ... */);
-
-const config = createConfig({
- connectors,
- {/* Wagmi config */}
-});
-
-const queryClient = new QueryClient();
-
-const App = () => (
-
-
-
- {/* Your App */}
-
-
-
-);
-```
-
-### Built-in XDEFI Wallets
-
-First, you need to install the `@rainbow-me/rainbowkit/wallets` package and then import the dApp:
-
-```javascript
-import { xdefiWallet } from "@rainbow-me/rainbowkit/wallets";
-```
-
-### Examples
-
-Here are examples: Show Rainbow, MetaMask, Coinbase and XDEFI along with generic fallback wallets.
-
-```javascript
-import { connectorsForWallets } from '@rainbow-me/rainbowkit';
-import {
- rainbowWallet,
- xdefiWallet
- metaMaskWallet,
- coinbaseWallet,
- walletConnectWallet,
-} from '@rainbow-me/rainbowkit/wallets';
-
-const connectors = connectorsForWallets(
- [
- {
- groupName: 'Suggested',
- wallets: [
- rainbowWallet,
- xdefiWallet,
- metaMaskWallet,
- coinbaseWallet,
- walletConnectWallet,
- ],
- },
- ],
- { appName: 'RainbowKit App', projectId: 'YOUR_PROJECT_ID' },
-);
-```
-
-> Reminder: The order of the wallets array defines the order in which wallets will be displayed in the UI.
-
-You also can use the `groupName` key to name different wallet groups. This is useful if you want to communicate to your users which wallets you recommend, as well as other possible wallets.
-
-Recommend Rainbow and MetaMask, but also offer Coinbase along with generic fallback wallets.
-
-```javascript
-import { connectorsForWallets } from "@rainbow-me/rainbowkit";
-import {
- rainbowWallet,
- xdefiWallet,
- metaMaskWallet,
- coinbaseWallet,
- walletConnectWallet,
-} from "@rainbow-me/rainbowkit/wallets";
-
-const connectors = connectorsForWallets(
- [
- {
- groupName: "Recommended",
- wallets: [rainbowWallet, metaMaskWallet],
- },
- {
- groupName: "Others",
- wallets: [xdefiWallet, coinbaseWallet, walletConnectWallet],
- },
- ],
- { appName: "RainbowKit App", projectId: "YOUR_PROJECT_ID" },
-);
-```
diff --git a/developers/solana-adapter-xdefi-integration.md b/developers/solana-adapter-xdefi-integration.md
deleted file mode 100644
index 52acccd48..000000000
--- a/developers/solana-adapter-xdefi-integration.md
+++ /dev/null
@@ -1,344 +0,0 @@
-# Solana Adapter XDEFI Integration
-
-First, your app need to install dependencies for Solana Adapter and XDEFI. These imports include event emitters, error types, transaction-related types, and the PublicKey class.
-
-- `@solana/wallet-adapter-base`
-- `@solana/web3.js`
-
-Then import dependencies and declare the `XDEFIWallet` and `XDEFIWalletWindow` interfaces:
-
-```typescript
-import type { EventEmitter, WalletName } from "@solana/wallet-adapter-base";
-import {
- BaseMessageSignerWalletAdapter,
- scopePollingDetectionStrategy,
- WalletAccountError,
- WalletConnectionError,
- WalletDisconnectedError,
- WalletDisconnectionError,
- WalletNotConnectedError,
- WalletNotReadyError,
- WalletPublicKeyError,
- WalletReadyState,
- WalletSignMessageError,
- WalletSignTransactionError,
-} from "@solana/wallet-adapter-base";
-import type {
- SendOptions,
- Transaction,
- TransactionSignature,
-} from "@solana/web3.js";
-import { PublicKey } from "@solana/web3.js";
-
-interface XDEFIWalletEvents {
- connect(...args: unknown[]): unknown;
- disconnect(...args: unknown[]): unknown;
-}
-
-interface XDEFIWallet extends EventEmitter {
- isXDEFI?: boolean;
- publicKey?: { toBytes(): Uint8Array };
- isConnected: boolean;
- signTransaction(transaction: Transaction): Promise;
- signAllTransactions(transactions: Transaction[]): Promise;
- signAndSendTransaction(
- transaction: Transaction,
- options?: SendOptions,
- ): Promise<{ signature: TransactionSignature }>;
- signMessage(message: Uint8Array): Promise<{ signature: Uint8Array }>;
- connect(): Promise;
- disconnect(): Promise;
-}
-
-interface XDEFIWalletWindow extends Window {
- xfi?: {
- solana?: XDEFIWallet;
- };
-}
-```
-
-Next, constructor a new class that extends `BaseMessageSignerWalletAdapter` and implements the `XDEFIWallet` interface:
-
-```typescript
-declare const window: XDEFIWalletWindow;
-
-export interface XDEFIWalletAdapterConfig {}
-
-export const XDEFIWalletName = "XDEFI" as WalletName<"XDEFI">;
-
-export class XDEFIWalletAdapter extends BaseMessageSignerWalletAdapter {
- name = XDEFIWalletName;
- url = "https://xdefi.io";
- icon =
- "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTE0LjI2MjggMTMuNDAxM0MxMi40MjI4IDE0LjUzMDcgOS45NTk5NyAxNS4xMTI0IDcuNDY1NjkgMTQuOTg4MUM1LjM2ODU1IDE0Ljg4NjUgMy42NDg1NSAxNC4xNDExIDIuNjA4NTUgMTIuOTE1N0MxLjY5NDI2IDExLjgyMDEgMS4zMzk5OCAxMC4zNzQ1IDEuNTc5OTggOC43MTE0M0MxLjY2MTMyIDguMTU4NzQgMS44MjgwMiA3LjYyMTY2IDIuMDc0MjYgNy4xMTg5NkwyLjEwODU1IDcuMDQ4MzdDMi45NzE4IDUuNDA1OTUgNC4yNTI5MyA0LjAxMzk3IDUuODI1ODQgMy4wMDk0MkM3LjM5ODc1IDIuMDA0ODYgOS4yMDkyNCAxLjQyMjM2IDExLjA3OTEgMS4zMTkyNEMxMi45NDkgMS4yMTYxMSAxNC44MTM4IDEuNTk1OTIgMTYuNDkwMSAyLjQyMTI4QzE4LjE2NjMgMy4yNDY2NSAxOS41OTYyIDQuNDg5MTIgMjAuNjM5IDYuMDI2NDFDMjEuNjgxOSA3LjU2MzcxIDIyLjMwMTcgOS4zNDI4NSAyMi40Mzc0IDExLjE4ODdDMjIuNTczMiAxMy4wMzQ2IDIyLjIyMDMgMTQuODgzNiAyMS40MTM0IDE2LjU1MzhDMjAuNjA2NSAxOC4yMjQgMTkuMzczNSAxOS42NTc3IDE3LjgzNTYgMjAuNzE0QzE2LjI5NzggMjEuNzcwMiAxNC41MDgxIDIyLjQxMjYgMTIuNjQyOCAyMi41Nzc4TDEyLjc1NzEgMjMuODczOEMxNC44NTE0IDIzLjY4OTQgMTYuODYxIDIyLjk2OTEgMTguNTg3OCAyMS43ODM3QzIwLjMxNDcgMjAuNTk4NCAyMS42OTkzIDE4Ljk4ODkgMjIuNjA1MiAxNy4xMTM4QzIzLjUxMTEgMTUuMjM4NyAyMy45MDcxIDEzLjE2MjcgMjMuNzU0MiAxMS4wOTA0QzIzLjYwMTIgOS4wMTgwOCAyMi45MDQ2IDcuMDIwODggMjEuNzMyOSA1LjI5NTU1QzIwLjU2MTMgMy41NzAyMiAxOC45NTUgMi4xNzYzIDE3LjA3MjQgMS4yNTExMUMxNS4xODk4IDAuMzI1OTA5IDEzLjA5NTcgLTAuMDk4NjQxMSAxMC45OTY1IDAuMDE5Mjc4N0M4Ljg5NzMzIDAuMTM3MTk4IDYuODY1NDQgMC43OTM1MiA1LjEwMTAyIDEuOTIzNTlDMy4zMzY2IDMuMDUzNjUgMS45MDA1MyA0LjYxODQ4IDAuOTM0MjY0IDYuNDYzOUwwLjg4ODU0OCA2LjU1NzA3QzAuNTgzMDgzIDcuMTgwOSAwLjM3Njg0NyA3Ljg0NzU2IDAuMjc3MTIgOC41MzM1NEMtMC4wMDg1OTQ1IDEwLjU2MDggMC40MzQyNiAxMi4zNjUxIDEuNTkxNCAxMy43NTQyQzIuODU3MTIgMTUuMjczMyA0LjkxNzEyIDE2LjE3NjggNy4zODg1NSAxNi4yOTU0QzEwLjM5NzEgMTYuNDQ1MSAxMy4zODg1IDE1LjYzNDcgMTUuNTExNCAxNC4xNDM5TDE0LjI2MjggMTMuNDAxM1oiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik0xNi43OCAxNC44NzUxQzE1LjU4MjkgMTUuOTAyOSAxMi44IDE3Ljc2NjQgOC4xODI4NiAxOC4wMjA1QzMuMDE0MjkgMTguMzAyOSAwLjg2MDAwMSAxNi42NDI3IDAuODQwMDAxIDE2LjYyNTdMMC40MjI4NTYgMTcuMTMzOUwwLjg0Mjg1NiAxNi42MzQyTDAgMTcuNjMzN0MwLjA5MTQyODYgMTcuNzA5OSAyLjE1NzE0IDE5LjM1ODkgNy4wMDg1NyAxOS4zNTg5QzcuNDA1NzEgMTkuMzU4OSA3LjgyMjg2IDE5LjM1ODkgOC4yNTcxNCAxOS4zMjVDMTMuODM3MSAxOS4wMTcyIDE2LjkwMjkgMTYuNjExNiAxNy45NzE0IDE1LjU4MzhMMTYuNzggMTQuODc1MVoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik0xOS4wMiAxNi4yMTkyQzE4LjMxMjEgMTcuMTM4NyAxNy40NDA4IDE3LjkyMzMgMTYuNDQ4NiAxOC41MzQ1QzEyLjk1MTUgMjAuNzY1IDguNTAyODkgMjEuMDUzIDUuMzg4NiAyMC44OTc4TDUuMzIyODkgMjIuMTk5NEM1Ljg0NTc1IDIyLjIyNDggNi4zNDg2MSAyMi4yMzYxIDYuODM3MTggMjIuMjM2MUMxNS42MiAyMi4yMzYxIDE5LjE2ODYgMTguMjgzMiAyMC4xNiAxNi44NzE0TDE5LjAxNzIgMTYuMjA3OSIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTE4LjY4NTcgMTEuMjkyMkMxOS4yNjggMTEuMjkyMiAxOS43NCAxMC44MjU3IDE5Ljc0IDEwLjI1MDNDMTkuNzQgOS42NzQ4OSAxOS4yNjggOS4yMDg0MiAxOC42ODU3IDkuMjA4NDJDMTguMTAzNCA5LjIwODQyIDE3LjYzMTQgOS42NzQ4OSAxNy42MzE0IDEwLjI1MDNDMTcuNjMxNCAxMC44MjU3IDE4LjEwMzQgMTEuMjkyMiAxOC42ODU3IDExLjI5MjJaIiBmaWxsPSJ3aGl0ZSIvPgo8L3N2Zz4K";
- readonly supportedTransactionVersions = null;
-
- private _connecting: boolean;
- private _wallet: XDEFIWallet | null;
- private _publicKey: PublicKey | null;
- private _readyState: WalletReadyState =
- typeof window === "undefined" || typeof document === "undefined"
- ? WalletReadyState.Unsupported
- : WalletReadyState.NotDetected;
-
- constructor(config: XDEFIWalletAdapterConfig = {}) {
- super();
- this._connecting = false;
- this._wallet = null;
- this._publicKey = null;
-
- if (this._readyState !== WalletReadyState.Unsupported) {
- scopePollingDetectionStrategy(() => {
- if (window.xfi?.solana?.isXDEFI) {
- this._readyState = WalletReadyState.Installed;
- this.emit("readyStateChange", this._readyState);
- return true;
- }
- return false;
- });
- }
- }
- // Define the `connect`, `disconnect`, `signTransaction`, `signAllTransactions`, `signAndSendTransaction`, and `signMessage` methods like other wallet adapters.
-}
-```
-
-Be sure to handle the `connect` and `disconnect` methods to update the `publicKey` and `isConnected` properties of the wallet adapter.
-
-### Example
-
-Here is an example of a Solana Adapter for XDEFI integration:
-
-```typescript
-import type { EventEmitter, WalletName } from "@solana/wallet-adapter-base";
-import {
- BaseMessageSignerWalletAdapter,
- scopePollingDetectionStrategy,
- WalletAccountError,
- WalletConnectionError,
- WalletDisconnectedError,
- WalletDisconnectionError,
- WalletNotConnectedError,
- WalletNotReadyError,
- WalletPublicKeyError,
- WalletReadyState,
- WalletSignMessageError,
- WalletSignTransactionError,
-} from "@solana/wallet-adapter-base";
-import type {
- SendOptions,
- Transaction,
- TransactionSignature,
-} from "@solana/web3.js";
-import { PublicKey } from "@solana/web3.js";
-
-interface XDEFIWalletEvents {
- connect(...args: unknown[]): unknown;
- disconnect(...args: unknown[]): unknown;
-}
-
-interface XDEFIWallet extends EventEmitter {
- isXDEFI?: boolean;
- publicKey?: { toBytes(): Uint8Array };
- isConnected: boolean;
- signTransaction(transaction: Transaction): Promise;
- signAllTransactions(transactions: Transaction[]): Promise;
- signAndSendTransaction(
- transaction: Transaction,
- options?: SendOptions,
- ): Promise<{ signature: TransactionSignature }>;
- signMessage(message: Uint8Array): Promise<{ signature: Uint8Array }>;
- connect(): Promise;
- disconnect(): Promise;
-}
-
-interface XDEFIWalletWindow extends Window {
- xfi?: {
- solana?: XDEFIWallet;
- };
-}
-
-declare const window: XDEFIWalletWindow;
-
-export interface XDEFIWalletAdapterConfig {}
-
-export const XDEFIWalletName = "XDEFI" as WalletName<"XDEFI">;
-
-export class XDEFIWalletAdapter extends BaseMessageSignerWalletAdapter {
- name = XDEFIWalletName;
- url = "https://xdefi.io";
- icon =
- "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTE0LjI2MjggMTMuNDAxM0MxMi40MjI4IDE0LjUzMDcgOS45NTk5NyAxNS4xMTI0IDcuNDY1NjkgMTQuOTg4MUM1LjM2ODU1IDE0Ljg4NjUgMy42NDg1NSAxNC4xNDExIDIuNjA4NTUgMTIuOTE1N0MxLjY5NDI2IDExLjgyMDEgMS4zMzk5OCAxMC4zNzQ1IDEuNTc5OTggOC43MTE0M0MxLjY2MTMyIDguMTU4NzQgMS44MjgwMiA3LjYyMTY2IDIuMDc0MjYgNy4xMTg5NkwyLjEwODU1IDcuMDQ4MzdDMi45NzE4IDUuNDA1OTUgNC4yNTI5MyA0LjAxMzk3IDUuODI1ODQgMy4wMDk0MkM3LjM5ODc1IDIuMDA0ODYgOS4yMDkyNCAxLjQyMjM2IDExLjA3OTEgMS4zMTkyNEMxMi45NDkgMS4yMTYxMSAxNC44MTM4IDEuNTk1OTIgMTYuNDkwMSAyLjQyMTI4QzE4LjE2NjMgMy4yNDY2NSAxOS41OTYyIDQuNDg5MTIgMjAuNjM5IDYuMDI2NDFDMjEuNjgxOSA3LjU2MzcxIDIyLjMwMTcgOS4zNDI4NSAyMi40Mzc0IDExLjE4ODdDMjIuNTczMiAxMy4wMzQ2IDIyLjIyMDMgMTQuODgzNiAyMS40MTM0IDE2LjU1MzhDMjAuNjA2NSAxOC4yMjQgMTkuMzczNSAxOS42NTc3IDE3LjgzNTYgMjAuNzE0QzE2LjI5NzggMjEuNzcwMiAxNC41MDgxIDIyLjQxMjYgMTIuNjQyOCAyMi41Nzc4TDEyLjc1NzEgMjMuODczOEMxNC44NTE0IDIzLjY4OTQgMTYuODYxIDIyLjk2OTEgMTguNTg3OCAyMS43ODM3QzIwLjMxNDcgMjAuNTk4NCAyMS42OTkzIDE4Ljk4ODkgMjIuNjA1MiAxNy4xMTM4QzIzLjUxMTEgMTUuMjM4NyAyMy45MDcxIDEzLjE2MjcgMjMuNzU0MiAxMS4wOTA0QzIzLjYwMTIgOS4wMTgwOCAyMi45MDQ2IDcuMDIwODggMjEuNzMyOSA1LjI5NTU1QzIwLjU2MTMgMy41NzAyMiAxOC45NTUgMi4xNzYzIDE3LjA3MjQgMS4yNTExMUMxNS4xODk4IDAuMzI1OTA5IDEzLjA5NTcgLTAuMDk4NjQxMSAxMC45OTY1IDAuMDE5Mjc4N0M4Ljg5NzMzIDAuMTM3MTk4IDYuODY1NDQgMC43OTM1MiA1LjEwMTAyIDEuOTIzNTlDMy4zMzY2IDMuMDUzNjUgMS45MDA1MyA0LjYxODQ4IDAuOTM0MjY0IDYuNDYzOUwwLjg4ODU0OCA2LjU1NzA3QzAuNTgzMDgzIDcuMTgwOSAwLjM3Njg0NyA3Ljg0NzU2IDAuMjc3MTIgOC41MzM1NEMtMC4wMDg1OTQ1IDEwLjU2MDggMC40MzQyNiAxMi4zNjUxIDEuNTkxNCAxMy43NTQyQzIuODU3MTIgMTUuMjczMyA0LjkxNzEyIDE2LjE3NjggNy4zODg1NSAxNi4yOTU0QzEwLjM5NzEgMTYuNDQ1MSAxMy4zODg1IDE1LjYzNDcgMTUuNTExNCAxNC4xNDM5TDE0LjI2MjggMTMuNDAxM1oiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik0xNi43OCAxNC44NzUxQzE1LjU4MjkgMTUuOTAyOSAxMi44IDE3Ljc2NjQgOC4xODI4NiAxOC4wMjA1QzMuMDE0MjkgMTguMzAyOSAwLjg2MDAwMSAxNi42NDI3IDAuODQwMDAxIDE2LjYyNTdMMC40MjI4NTYgMTcuMTMzOUwwLjg0Mjg1NiAxNi42MzQyTDAgMTcuNjMzN0MwLjA5MTQyODYgMTcuNzA5OSAyLjE1NzE0IDE5LjM1ODkgNy4wMDg1NyAxOS4zNTg5QzcuNDA1NzEgMTkuMzU4OSA3LjgyMjg2IDE5LjM1ODkgOC4yNTcxNCAxOS4zMjVDMTMuODM3MSAxOS4wMTcyIDE2LjkwMjkgMTYuNjExNiAxNy45NzE0IDE1LjU4MzhMMTYuNzggMTQuODc1MVoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik0xOS4wMiAxNi4yMTkyQzE4LjMxMjEgMTcuMTM4NyAxNy40NDA4IDE3LjkyMzMgMTYuNDQ4NiAxOC41MzQ1QzEyLjk1MTUgMjAuNzY1IDguNTAyODkgMjEuMDUzIDUuMzg4NiAyMC44OTc4TDUuMzIyODkgMjIuMTk5NEM1Ljg0NTc1IDIyLjIyNDggNi4zNDg2MSAyMi4yMzYxIDYuODM3MTggMjIuMjM2MUMxNS42MiAyMi4yMzYxIDE5LjE2ODYgMTguMjgzMiAyMC4xNiAxNi44NzE0TDE5LjAxNzIgMTYuMjA3OSIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTE4LjY4NTcgMTEuMjkyMkMxOS4yNjggMTEuMjkyMiAxOS43NCAxMC44MjU3IDE5Ljc0IDEwLjI1MDNDMTkuNzQgOS42NzQ4OSAxOS4yNjggOS4yMDg0MiAxOC42ODU3IDkuMjA4NDJDMTguMTAzNCA5LjIwODQyIDE3LjYzMTQgOS42NzQ4OSAxNy42MzE0IDEwLjI1MDNDMTcuNjMxNCAxMC44MjU3IDE4LjEwMzQgMTEuMjkyMiAxOC42ODU3IDExLjI5MjJaIiBmaWxsPSJ3aGl0ZSIvPgo8L3N2Zz4K";
- readonly supportedTransactionVersions = null;
-
- private _connecting: boolean;
- private _wallet: XDEFIWallet | null;
- private _publicKey: PublicKey | null;
- private _readyState: WalletReadyState =
- typeof window === "undefined" || typeof document === "undefined"
- ? WalletReadyState.Unsupported
- : WalletReadyState.NotDetected;
-
- constructor(config: XDEFIWalletAdapterConfig = {}) {
- super();
- this._connecting = false;
- this._wallet = null;
- this._publicKey = null;
-
- if (this._readyState !== WalletReadyState.Unsupported) {
- scopePollingDetectionStrategy(() => {
- if (window.xfi?.solana?.isXDEFI) {
- this._readyState = WalletReadyState.Installed;
- this.emit("readyStateChange", this._readyState);
- return true;
- }
- return false;
- });
- }
- }
-
- get publicKey() {
- return this._publicKey;
- }
-
- get connecting() {
- return this._connecting;
- }
-
- get connected() {
- return !!this._wallet?.isConnected;
- }
-
- get readyState() {
- return this._readyState;
- }
-
- async connect(): Promise {
- try {
- if (this.connected || this.connecting) return;
- if (this._readyState !== WalletReadyState.Installed)
- throw new WalletNotReadyError();
-
- this._connecting = true;
-
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
- const wallet = window.xfi!.solana!;
-
- if (!wallet.isConnected) {
- try {
- await wallet.connect();
- } catch (error: any) {
- throw new WalletConnectionError(error?.message, error);
- }
- }
-
- if (!wallet.publicKey) throw new WalletAccountError();
-
- let publicKey: PublicKey;
- try {
- publicKey = new PublicKey(wallet.publicKey.toBytes());
- } catch (error: any) {
- throw new WalletPublicKeyError(error?.message, error);
- }
-
- wallet.on("disconnect", this._disconnected);
-
- this._wallet = wallet;
- this._publicKey = publicKey;
-
- this.emit("connect", publicKey);
- } catch (error: any) {
- this.emit("error", error);
- throw error;
- } finally {
- this._connecting = false;
- }
- }
-
- async disconnect(): Promise {
- const wallet = this._wallet;
- if (wallet) {
- wallet.off("disconnect", this._disconnected);
-
- this._wallet = null;
- this._publicKey = null;
-
- try {
- await wallet.disconnect();
- } catch (error: any) {
- this.emit("error", new WalletDisconnectionError(error?.message, error));
- }
- }
-
- this.emit("disconnect");
- }
-
- async signTransaction(transaction: T): Promise {
- try {
- const wallet = this._wallet;
- if (!wallet) throw new WalletNotConnectedError();
-
- try {
- return (
- ((await wallet.signTransaction(transaction)) as T) || transaction
- );
- } catch (error: any) {
- throw new WalletSignTransactionError(error?.message, error);
- }
- } catch (error: any) {
- this.emit("error", error);
- throw error;
- }
- }
-
- async signAllTransactions(
- transactions: T[],
- ): Promise {
- try {
- const wallet = this._wallet;
- if (!wallet) throw new WalletNotConnectedError();
-
- try {
- return (
- ((await wallet.signAllTransactions(transactions)) as T[]) ||
- transactions
- );
- } catch (error: any) {
- throw new WalletSignTransactionError(error?.message, error);
- }
- } catch (error: any) {
- this.emit("error", error);
- throw error;
- }
- }
-
- async signMessage(message: Uint8Array): Promise {
- try {
- const wallet = this._wallet;
- if (!wallet) throw new WalletNotConnectedError();
-
- try {
- const { signature } = await wallet.signMessage(message);
- return signature;
- } catch (error: any) {
- throw new WalletSignMessageError(error?.message, error);
- }
- } catch (error: any) {
- this.emit("error", error);
- throw error;
- }
- }
-
- private _disconnected = () => {
- const wallet = this._wallet;
- if (wallet) {
- wallet.off("disconnect", this._disconnected);
-
- this._wallet = null;
- this._publicKey = null;
-
- this.emit("error", new WalletDisconnectedError());
- this.emit("disconnect");
- }
- };
-}
-```