From cc67d1bcfa3db577734eaf723ad812ebb068acf8 Mon Sep 17 00:00:00 2001 From: Aleksandar Cakalic Date: Mon, 6 Oct 2025 09:52:27 +0200 Subject: [PATCH 1/4] feat: add xverse connector --- package.json | 5 +++++ src/connectors/injected/index.ts | 4 ++++ src/connectors/injected/xverse.ts | 17 +++++++++++++++++ vite.config.ts | 1 + 4 files changed, 27 insertions(+) create mode 100644 src/connectors/injected/xverse.ts diff --git a/package.json b/package.json index 350ffca..3ec27b1 100644 --- a/package.json +++ b/package.json @@ -67,6 +67,11 @@ "import": "./dist/fordefi.js", "require": "./dist/fordefi.cjs" }, + "./xverse": { + "types": "./dist/xverse.d.ts", + "import": "./dist/xverse.js", + "require": "./dist/xverse.cjs" + }, "./braavosMobile": { "types": "./dist/braavosMobile.d.ts", "import": "./dist/braavosMobile.js", diff --git a/src/connectors/injected/index.ts b/src/connectors/injected/index.ts index de837d7..907f9ab 100644 --- a/src/connectors/injected/index.ts +++ b/src/connectors/injected/index.ts @@ -67,6 +67,10 @@ export const injectedWalletIcons = { light: "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzEzNDk0XzY2MjU0KSI+CjxwYXRoIGQ9Ik0xMC44NzY5IDE1LjYzNzhIMS41VjE4LjM5OUMxLjUgMTkuODAxMyAyLjYzNDQ3IDIwLjkzOCA0LjAzMzkyIDIwLjkzOEg4LjI0OTkyTDEwLjg3NjkgMTUuNjM3OFoiIGZpbGw9IiM3OTk0RkYiLz4KPHBhdGggZD0iTTEuNSA5Ljc3NTUxSDE5LjA1MTZMMTcuMDEzOSAxMy44NzExSDEuNVY5Ljc3NTUxWiIgZmlsbD0iIzQ4NkRGRiIvPgo8cGF0aCBkPSJNNy42NTk5NiAzSDEuNTI0NDFWOC4wMDcwNEgyMi40NjEyVjNIMTYuMzI1NlY2LjczOTQ0SDE1LjA2MDZWM0g4LjkyNTAyVjYuNzM5NDRINy42NTk5NlYzWiIgZmlsbD0iIzVDRDFGQSIvPgo8L2c+CjxkZWZzPgo8Y2xpcFBhdGggaWQ9ImNsaXAwXzEzNDk0XzY2MjU0Ij4KPHJlY3Qgd2lkdGg9IjIxIiBoZWlnaHQ9IjE4IiBmaWxsPSJ3aGl0ZSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMS41IDMpIi8+CjwvY2xpcFBhdGg+CjwvZGVmcz4KPC9zdmc+Cg==", }, + xverse: { + dark: "", + light: "", + }, } export class InjectedConnector extends Connector { diff --git a/src/connectors/injected/xverse.ts b/src/connectors/injected/xverse.ts new file mode 100644 index 0000000..14c7149 --- /dev/null +++ b/src/connectors/injected/xverse.ts @@ -0,0 +1,17 @@ +import { InjectedConnector, type InjectedConnectorOptions } from "./index" + +const id = "xverse" + +export class Xverse extends InjectedConnector { + constructor(options?: Omit) { + super({ options: { id, ...options } }) + } + + static getInjectedWallet() { + return super.getInjectedWallet(id) + } + + static isWalletInjected() { + return super.isWalletInjected(id) + } +} diff --git a/vite.config.ts b/vite.config.ts index e16c430..5431dec 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -49,6 +49,7 @@ export default defineConfig({ metamask: resolve(__dirname, "src/connectors/injected/metamask.ts"), keplr: resolve(__dirname, "src/connectors/injected/keplr.ts"), fordefi: resolve(__dirname, "src/connectors/injected/fordefi.ts"), + xverse: resolve(__dirname, "src/connectors/injected/xverse.ts"), }, formats: ["es", "cjs"], }, From 417603440552d4eb44ed2c6dc9515a422b6be6b5 Mon Sep 17 00:00:00 2001 From: Aleksandar Cakalic Date: Mon, 6 Oct 2025 09:59:43 +0200 Subject: [PATCH 2/4] chore: add xverse dark icon --- src/connectors/injected/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connectors/injected/index.ts b/src/connectors/injected/index.ts index 907f9ab..e701976 100644 --- a/src/connectors/injected/index.ts +++ b/src/connectors/injected/index.ts @@ -68,7 +68,7 @@ export const injectedWalletIcons = { "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzEzNDk0XzY2MjU0KSI+CjxwYXRoIGQ9Ik0xMC44NzY5IDE1LjYzNzhIMS41VjE4LjM5OUMxLjUgMTkuODAxMyAyLjYzNDQ3IDIwLjkzOCA0LjAzMzkyIDIwLjkzOEg4LjI0OTkyTDEwLjg3NjkgMTUuNjM3OFoiIGZpbGw9IiM3OTk0RkYiLz4KPHBhdGggZD0iTTEuNSA5Ljc3NTUxSDE5LjA1MTZMMTcuMDEzOSAxMy44NzExSDEuNVY5Ljc3NTUxWiIgZmlsbD0iIzQ4NkRGRiIvPgo8cGF0aCBkPSJNNy42NTk5NiAzSDEuNTI0NDFWOC4wMDcwNEgyMi40NjEyVjNIMTYuMzI1NlY2LjczOTQ0SDE1LjA2MDZWM0g4LjkyNTAyVjYuNzM5NDRINy42NTk5NlYzWiIgZmlsbD0iIzVDRDFGQSIvPgo8L2c+CjxkZWZzPgo8Y2xpcFBhdGggaWQ9ImNsaXAwXzEzNDk0XzY2MjU0Ij4KPHJlY3Qgd2lkdGg9IjIxIiBoZWlnaHQ9IjE4IiBmaWxsPSJ3aGl0ZSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMS41IDMpIi8+CjwvY2xpcFBhdGg+CjwvZGVmcz4KPC9zdmc+Cg==", }, xverse: { - dark: "", + dark: "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTAyIiBoZWlnaHQ9IjEwMiIgdmlld0JveD0iMCAwIDEwMiAxMDIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxnIGlkPSJJY29uX0FydCAoRWRpdCBNZSkiPgo8cmVjdCB3aWR0aD0iMTAyIiBoZWlnaHQ9IjEwMiIgZmlsbD0iIzE4MTgxOCIvPgo8ZyBpZD0iTG9nby9FbWJsZW0iIGNsaXAtcGF0aD0idXJsKCNjbGlwMF8yMF8xMjIzKSI+CjxwYXRoIGlkPSJWZWN0b3IiIGQ9Ik03NC42NTQyIDczLjg4ODNWNjUuMjMxMkM3NC42NTQyIDY0Ljg4OCA3NC41MTc3IDY0LjU2MDYgNzQuMjc0NSA2NC4zMTc0TDM3LjQzOTcgMjcuNDgyNUMzNy4xOTY1IDI3LjIzOTIgMzYuODY5MSAyNy4xMDI4IDM2LjUyNTggMjcuMTAyOEgyNy44NjlDMjcuNDQxNiAyNy4xMDI4IDI3LjA5MzggMjcuNDUwNiAyNy4wOTM4IDI3Ljg3OFYzNS45MjExQzI3LjA5MzggMzYuMjY0NCAyNy4yMzAyIDM2LjU5MTcgMjcuNDczNCAzNi44MzVMNDAuNjk1MiA1MC4wNTY3QzQwLjk5NzUgNTAuMzU5MSA0MC45OTc1IDUwLjg1MDEgNDAuNjk1MiA1MS4xNTI0TDI3LjMyMTEgNjQuNTI2NUMyNy4xNzU2IDY0LjY3MiAyNy4wOTM4IDY0Ljg2OTggMjcuMDkzOCA2NS4wNzQ0VjczLjg4ODNDMjcuMDkzOCA3NC4zMTUzIDI3LjQ0MTYgNzQuNjYzNSAyNy44NjkgNzQuNjYzNUg0Mi4zMzQyQzQyLjc2MTYgNzQuNjYzNSA0My4xMDk0IDc0LjMxNTMgNDMuMTA5NCA3My44ODgzVjY4LjY5NThDNDMuMTA5NCA2OC40OTEyIDQzLjE5MTIgNjguMjkzNSA0My4zMzY4IDY4LjE0NzlMNTAuNTExNCA2MC45NzMzQzUwLjgxMzggNjAuNjcwOSA1MS4zMDQ4IDYwLjY3MDkgNTEuNjA3MiA2MC45NzMzTDY0LjkxOTggNzQuMjg2MUM2NS4xNjMxIDc0LjUyOTMgNjUuNDkwNCA3NC42NjU4IDY1LjgzMzcgNzQuNjY1OEg3My44NzY3Qzc0LjMwNDIgNzQuNjY1OCA3NC42NTE5IDc0LjMxNzYgNzQuNjUxOSA3My44OTA2TDc0LjY1NDIgNzMuODg4M1oiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGlkPSJWZWN0b3JfMiIgZD0iTTU1LjM1OCAzOC41NjcySDYyLjYwMzFDNjMuMDMyOCAzOC41NjcyIDYzLjM4MjkgMzguOTE3MyA2My4zODI5IDM5LjM0NjlWNDYuNTkyMUM2My4zODI5IDQ3LjI4NzcgNjQuMjI0IDQ3LjYzNTUgNjQuNzE1MSA0Ny4xNDIyTDc0LjY1NDEgMzcuMTg3M0M3NC43OTk0IDM3LjA0MTggNzQuODgxNiAzNi44NDQgNzQuODgxNiAzNi42MzcxVjI3LjkxODlDNzQuODgxNiAyNy40ODkyIDc0LjUzMzQgMjcuMTM5MSA3NC4xMDE3IDI3LjEzOTFMNjUuMjUzOCAyNy4xMjc3QzY1LjA0NyAyNy4xMjc3IDY0Ljg0OTIgMjcuMjA5NiA2NC43MDE0IDI3LjM1NTFMNTQuODA1NiAzNy4yMzVDNTQuMzE0NSAzNy43MjYgNTQuNjYyMyAzOC41NjcyIDU1LjM1NTcgMzguNTY3Mkg1NS4zNThaIiBmaWxsPSIjRUU3QTMwIi8+CjwvZz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8yMF8xMjIzIj4KPHJlY3Qgd2lkdGg9IjQ3LjgxMjUiIGhlaWdodD0iNDcuODEyNSIgZmlsbD0id2hpdGUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDI3LjA5MzggMjcuMDkzOCkiLz4KPC9jbGlwUGF0aD4KPC9kZWZzPgo8L3N2Zz4K", light: "", }, } From 4a0147f1edefdd8ad76cf83cae0a088f79fec31e Mon Sep 17 00:00:00 2001 From: Aleksandar Cakalic Date: Mon, 6 Oct 2025 10:01:24 +0200 Subject: [PATCH 3/4] chore: add xverse to `defaultConnectors.ts` --- src/helpers/defaultConnectors.ts | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/src/helpers/defaultConnectors.ts b/src/helpers/defaultConnectors.ts index dee8e3e..4ab5ee2 100644 --- a/src/helpers/defaultConnectors.ts +++ b/src/helpers/defaultConnectors.ts @@ -2,22 +2,16 @@ import type { StarknetkitConnector } from "../connectors" import { type ArgentMobileConnectorOptions } from "../connectors/argent/argentMobile" import { BraavosMobileBaseConnector } from "../connectors/braavosMobile" import { ControllerConnector } from "../connectors/controller" -import { WebWalletConnector } from "../connectors/webwallet" import { Braavos } from "../connectors/injected/braavos" import { Fordefi } from "../connectors/injected/fordefi" import { Keplr } from "../connectors/injected/keplr" +import { Xverse } from "../connectors/injected/xverse" import { MetaMask } from "../connectors/injected/metamask" import { isMobileDevice, isSafari } from "./navigator" import { ArgentX } from "../connectors/injected/argentX" -export const defaultConnectors = ({ - argentMobileOptions, - webWalletUrl, -}: { - argentMobileOptions: ArgentMobileConnectorOptions - webWalletUrl?: string -}): StarknetkitConnector[] => { +export const defaultConnectors = (): StarknetkitConnector[] => { // | StarknetkitCompoundConnector const defaultConnectors: StarknetkitConnector[] = // | StarknetkitCompoundConnector @@ -37,6 +31,9 @@ export const defaultConnectors = ({ if (Keplr.isWalletInjected()) { defaultConnectors.push(new Keplr()) } + if (Xverse.isWalletInjected()) { + defaultConnectors.push(new Xverse()) + } } defaultConnectors.push(new ControllerConnector()) From 46415370dc0ac9297b4a8308e7f621ce3a48065d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Sojka?= Date: Thu, 13 Nov 2025 14:59:21 +0100 Subject: [PATCH 4/4] chore: make check pass --- src/helpers/defaultConnectors.ts | 9 +++++++-- src/modal/components/DynamicIcon.svelte | 4 ++-- src/modal/components/buttons/WalletButton.svelte | 2 +- src/modal/layouts/DownloadWallet/DownloadWallet.svelte | 2 +- src/modal/layouts/WalletList.svelte | 2 +- 5 files changed, 12 insertions(+), 7 deletions(-) diff --git a/src/helpers/defaultConnectors.ts b/src/helpers/defaultConnectors.ts index 4ab5ee2..6097e43 100644 --- a/src/helpers/defaultConnectors.ts +++ b/src/helpers/defaultConnectors.ts @@ -1,5 +1,5 @@ import type { StarknetkitConnector } from "../connectors" -import { type ArgentMobileConnectorOptions } from "../connectors/argent/argentMobile" +import type { ArgentMobileConnectorOptions } from "../connectors/argent/argentMobile" import { BraavosMobileBaseConnector } from "../connectors/braavosMobile" import { ControllerConnector } from "../connectors/controller" import { Braavos } from "../connectors/injected/braavos" @@ -11,7 +11,12 @@ import { MetaMask } from "../connectors/injected/metamask" import { isMobileDevice, isSafari } from "./navigator" import { ArgentX } from "../connectors/injected/argentX" -export const defaultConnectors = (): StarknetkitConnector[] => { +export const defaultConnectors = ( + _options?: { + argentMobileOptions?: ArgentMobileConnectorOptions + webWalletUrl?: string + }, +): StarknetkitConnector[] => { // | StarknetkitCompoundConnector const defaultConnectors: StarknetkitConnector[] = // | StarknetkitCompoundConnector diff --git a/src/modal/components/DynamicIcon.svelte b/src/modal/components/DynamicIcon.svelte index 8d131d8..328cb0c 100644 --- a/src/modal/components/DynamicIcon.svelte +++ b/src/modal/components/DynamicIcon.svelte @@ -1,6 +1,6 @@